dwindown
|
f7dca7bc28
|
docs: Critical metabox & custom fields compatibility gap identified
**Issue: Third-Party Plugin Compatibility**
Current Status: ❌ NOT IMPLEMENTED
Priority: 🔴 CRITICAL - Blocks production readiness
**Problem:**
Our SPA admin does NOT expose:
- Custom meta fields from third-party plugins
- WordPress metaboxes (add_meta_box)
- WooCommerce custom fields
- ACF/CMB2/Pods fields
- Plugin-injected data (e.g., Tracking Number)
**Example Use Case:**
Plugin: WooCommerce Shipment Tracking
- Adds 'Tracking Number' metabox to order edit page
- Stores: _tracking_number meta field
- Current: ❌ NOT visible in WooNooW admin
- Expected: ✅ Should be visible and editable
**Impact:**
1. Breaks compatibility with popular plugins
2. Users cannot see/edit custom fields
3. Data exists but not accessible in SPA
4. Forces users back to classic admin
5. BLOCKS production readiness
**Solution Architecture:**
Phase 1: API Layer (2-3 days)
- Expose meta_data in OrdersController::show()
- Expose meta_data in ProductsController::get_product()
- Add filters: woonoow/order_api_data, woonoow/product_api_data
- Add filters: woonoow/order_allowed_private_meta
- Add actions: woonoow/order_updated, woonoow/product_updated
Phase 2: Frontend Components (3-4 days)
- Create MetaFields.tsx component
- Create useMetaFields.ts hook
- Update Orders/Edit.tsx to include meta fields
- Update Products/Edit.tsx to include meta fields
- Add meta fields to detail pages
Phase 3: Plugin Integration (2-3 days)
- Create MetaFieldsRegistry.php
- Add woonoow/register_meta_fields action
- Localize fields to JavaScript
- Create example: ShipmentTracking.php integration
- Document integration pattern
**Documentation Created:**
- METABOX_COMPAT.md - Complete implementation guide
- Includes code examples for all phases
- Includes third-party integration guide
- Includes testing checklist
**Updated:**
- PROJECT_SOP.md - Added metabox compat reference
- Marked as CRITICAL requirement
- Noted as blocking production readiness
**Timeline:**
Total: 1-2 weeks implementation
**Blocking:**
- ✅ Coupons CRUD (can proceed)
- ✅ Customers CRUD (can proceed)
- ❌ Production readiness (BLOCKED)
**Next Steps:**
1. Review METABOX_COMPAT.md
2. Prioritize implementation
3. Start with Phase 1 (API layer)
4. Test with popular plugins (Shipment Tracking, ACF)
|
2025-11-20 11:11:06 +07:00 |
|