Implemented: PHP MetaFieldsRegistry for Level 1 Compatibility Created MetaFieldsRegistry.php: - register_order_field() - Register order meta fields - register_product_field() - Register product meta fields - Auto-add to allowed/updatable meta lists - Localize to window.WooNooWMetaFields - Zero coupling with specific plugins Features: - Automatic label formatting from meta key - Support all field types (text, textarea, number, select, date, checkbox) - Section grouping - Description and placeholder support - Auto-registration to API filters Initialized in Bootstrap.php: - Added MetaFieldsRegistry::init() - Triggers woonoow/register_meta_fields action - Localizes fields to JavaScript Updated METABOX_COMPAT.md: - Added complete plugin integration examples - Shipment Tracking example - ACF example - Custom plugin example - API response examples - Field types reference - Marked as COMPLETE How Plugins Use It: 1. Store data: update_post_meta (standard WooCommerce) 2. Register fields: MetaFieldsRegistry::register_order_field() 3. Fields auto-exposed in API 4. Fields auto-displayed in WooNooW admin 5. Data saved to WooCommerce database 6. Zero migration needed Result: - Level 1 compatibility FULLY IMPLEMENTED - Plugins work automatically - Zero addon dependencies in core - Production ready All 3 Phases Complete: Phase 1: Backend API (meta exposure/update) Phase 2: Frontend components (MetaFields/useMetaFields) Phase 3: PHP registry system (MetaFieldsRegistry) Status: READY FOR PRODUCTION
60 lines
1.8 KiB
PHP
60 lines
1.8 KiB
PHP
<?php
|
|
namespace WooNooW\Core;
|
|
|
|
use WooNooW\Core\Features;
|
|
use WooNooW\Admin\Menu;
|
|
use WooNooW\Admin\Assets;
|
|
use WooNooW\Admin\StandaloneAdmin;
|
|
use WooNooW\Compat\HideWooMenus;
|
|
use WooNooW\Compat\MenuProvider;
|
|
use WooNooW\Compat\AddonRegistry;
|
|
use WooNooW\Compat\RouteRegistry;
|
|
use WooNooW\Compat\NavigationRegistry;
|
|
use WooNooW\Compat\PaymentChannels;
|
|
use WooNooW\Compat\SettingsProvider;
|
|
use WooNooW\Compat\MetaFieldsRegistry;
|
|
use WooNooW\Admin\Rest\MenuController;
|
|
use WooNooW\Admin\Rest\SettingsController;
|
|
use WooNooW\Api\Routes;
|
|
use WooNooW\Core\Mail\MailQueue;
|
|
use WooNooW\Core\Mail\WooEmailOverride;
|
|
use WooNooW\Core\DataStores\OrderStore;
|
|
use WooNooW\Core\MediaUpload;
|
|
use WooNooW\Core\Notifications\PushNotificationHandler;
|
|
use WooNooW\Core\Notifications\EmailManager;
|
|
use WooNooW\Core\ActivityLog\ActivityLogTable;
|
|
use WooNooW\Branding;
|
|
|
|
class Bootstrap {
|
|
public static function init() {
|
|
Features::init();
|
|
HideWooMenus::init();
|
|
Menu::init();
|
|
Assets::init();
|
|
StandaloneAdmin::init();
|
|
Branding::init();
|
|
MediaUpload::init();
|
|
PushNotificationHandler::init();
|
|
EmailManager::instance(); // Initialize custom email system
|
|
|
|
// Activity Log
|
|
ActivityLogTable::create_table();
|
|
|
|
// Addon system (order matters: Registry → Routes → Navigation)
|
|
AddonRegistry::init();
|
|
RouteRegistry::init();
|
|
NavigationRegistry::init();
|
|
PaymentChannels::init();
|
|
|
|
// Level 1 compatibility: Meta fields registry
|
|
MetaFieldsRegistry::init();
|
|
|
|
MenuProvider::init();
|
|
MenuController::init();
|
|
SettingsProvider::init();
|
|
Routes::init();
|
|
MailQueue::init();
|
|
WooEmailOverride::init();
|
|
OrderStore::init();
|
|
}
|
|
} |