**Issue:** Core had default allowed meta fields for specific addons - OrdersController: _tracking_number, _tracking_provider, etc. - ProductsController: _custom_field **Problem:** This violates our core principle: ❌ WooNooW Core = Zero addon dependencies ❌ We do NOT support specific plugins in core ❌ We do NOT hardcode addon fields **Solution:** Empty defaults, plugins register via filters **Before:** ```php $allowed = apply_filters('woonoow/order_allowed_private_meta', [ '_tracking_number', // ❌ Addon-specific '_tracking_provider', // ❌ Addon-specific ], $order); ``` **After:** ```php // Core has ZERO defaults - plugins register via filter $allowed = apply_filters('woonoow/order_allowed_private_meta', [], $order); ``` **How Plugins Register:** ```php // Shipment Tracking plugin (or any plugin) add_filter('woonoow/order_allowed_private_meta', function($allowed) { $allowed[] = '_tracking_number'; $allowed[] = '_tracking_provider'; return $allowed; }); ``` **Principle Maintained:** ✅ Core has ZERO addon dependencies ✅ Core does NOT know about specific plugins ✅ Plugins register themselves via standard WP filters ✅ Community does the integration, not core **Changed:** - OrdersController: Empty defaults for allowed/updatable meta - ProductsController: Empty defaults for allowed/updatable meta - Added comments: 'Core has ZERO defaults - plugins register via filter' **Result:** - Public meta (no underscore): Always exposed automatically - Private meta (starts with _): Only if plugin registers via filter - Clean separation: Core provides mechanism, plugins use it
23 KiB
23 KiB