Files
WooNooW/includes/Core/Bootstrap.php
Dwindi Ramadhana f397ef850f feat: Add product images support with WP Media Library integration
- Add WP Media Library integration for product and variation images
- Support images array (URLs) conversion to attachment IDs
- Add images array to API responses (Admin & Customer SPA)
- Implement drag-and-drop sortable images in Admin product form
- Add image gallery thumbnails in Customer SPA product page
- Initialize WooCommerce session for guest cart operations
- Fix product variations and attributes display in Customer SPA
- Add variation image field in Admin SPA

Changes:
- includes/Api/ProductsController.php: Handle images array, add to responses
- includes/Frontend/ShopController.php: Add images array for customer SPA
- includes/Frontend/CartController.php: Initialize WC session for guests
- admin-spa/src/lib/wp-media.ts: Add openWPMediaGallery function
- admin-spa/src/routes/Products/partials/tabs/GeneralTab.tsx: WP Media + sortable images
- admin-spa/src/routes/Products/partials/tabs/VariationsTab.tsx: Add variation image field
- customer-spa/src/pages/Product/index.tsx: Add gallery thumbnails display
2025-11-26 16:18:43 +07:00

68 lines
2.0 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;
use WooNooW\Frontend\Assets as FrontendAssets;
use WooNooW\Frontend\Shortcodes;
use WooNooW\Frontend\TemplateOverride;
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
// Frontend (customer-spa)
FrontendAssets::init();
Shortcodes::init();
TemplateOverride::init();
// 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();
}
}