diff --git a/METABOX_COMPAT.md b/METABOX_COMPAT.md index ce46878..cf86561 100644 --- a/METABOX_COMPAT.md +++ b/METABOX_COMPAT.md @@ -1,19 +1,62 @@ # WooNooW Metabox & Custom Fields Compatibility -## Current Status: ❌ NOT IMPLEMENTED +## Philosophy: 3-Level Compatibility Strategy -**Critical Gap:** Our SPA admin does NOT currently expose custom meta fields, metaboxes, or third-party plugin data injected via WordPress/WooCommerce hooks. +Following `ADDON_BRIDGE_PATTERN.md`, we support plugins at 3 levels: -### Example Use Case: +### **Level 1: Native WP/WooCommerce Hooks** 🟢 (THIS DOCUMENT) +**Community does NOTHING extra** - We listen automatically +- Plugins use standard `add_meta_box()`, `update_post_meta()` +- Store data in WooCommerce order/product meta +- WooNooW exposes this data via API automatically +- **Status: ❌ NOT IMPLEMENTED - MUST DO NOW** + +### **Level 2: Bridge Snippets** 🟡 (See ADDON_BRIDGE_PATTERN.md) +**Community creates simple bridge** - For non-standard behavior +- Plugins that bypass standard hooks (e.g., Rajaongkir custom UI) +- WooNooW provides hook system + documentation +- Community creates bridge snippets +- **Status: ✅ Hook system exists, documentation provided** + +### **Level 3: Native WooNooW Addons** 🔵 (See ADDON_BRIDGE_PATTERN.md) +**Community builds proper addons** - Best experience +- Native WooNooW integration +- Uses WooNooW addon system +- Independent plugins +- **Status: ✅ Addon system exists, developer docs provided** + +--- + +## Current Status: ❌ LEVEL 1 NOT IMPLEMENTED + +**Critical Gap:** Our SPA admin does NOT currently expose custom meta fields from plugins that use standard WordPress/WooCommerce hooks. + +### Example Use Case (Level 1): +```php +// Plugin: WooCommerce Shipment Tracking +// Uses STANDARD WooCommerce meta storage + +// Plugin stores data (standard WooCommerce way) +update_post_meta($order_id, '_tracking_number', '1234567890'); +update_post_meta($order_id, '_tracking_provider', 'JNE'); + +// Plugin displays in classic admin (standard metabox) +add_meta_box('wc_shipment_tracking', 'Tracking Info', function($post) { + $tracking = get_post_meta($post->ID, '_tracking_number', true); + echo ''; +}, 'shop_order'); ``` -Plugin: WooCommerce Shipment Tracking -- Adds "Tracking Number" metabox to order edit page -- Uses: add_meta_box('wc_shipment_tracking', ...) -- Stores: update_post_meta($order_id, '_tracking_number', $value) -Current Behavior: ❌ Field NOT visible in WooNooW admin -Expected Behavior: ✅ Field should be visible and editable -``` +**Current WooNooW Behavior:** +- ❌ API doesn't expose `_tracking_number` meta +- ❌ Frontend can't read/write this data +- ❌ Plugin's data exists in DB but not accessible + +**Expected WooNooW Behavior (Level 1):** +- ✅ API exposes `meta` object with all fields +- ✅ Frontend can read/write meta data +- ✅ Plugin works WITHOUT any bridge/addon +- ✅ **Community does NOTHING extra** ---