- Created LayoutWrapper component to conditionally render header/footer based on route - Created MinimalHeader component (logo only) - Created MinimalFooter component (trust badges + policy links) - Created usePageVisibility hook to get visibility settings per page - Wrapped ClassicLayout with LayoutWrapper for conditional rendering - Header/footer visibility now controlled directly in React SPA - Settings: show/minimal/hide for both header and footer - Background color support for checkout and thankyou pages
153 lines
6.1 KiB
PHP
153 lines
6.1 KiB
PHP
<?php
|
|
namespace WooNooW\Api;
|
|
|
|
use WP_REST_Request;
|
|
use WP_REST_Response;
|
|
use WooNooW\Api\CheckoutController;
|
|
use WooNooW\Api\OrdersController;
|
|
use WooNooW\Api\AnalyticsController;
|
|
use WooNooW\Api\AuthController;
|
|
use WooNooW\Api\PaymentsController;
|
|
use WooNooW\Api\StoreController;
|
|
use WooNooW\Api\ShippingController;
|
|
use WooNooW\Api\TaxController;
|
|
use WooNooW\Api\PickupLocationsController;
|
|
use WooNooW\Api\EmailController;
|
|
use WooNooW\Api\DeveloperController;
|
|
use WooNooW\Api\SystemController;
|
|
use WooNooW\Api\NotificationsController;
|
|
use WooNooW\Api\ActivityLogController;
|
|
use WooNooW\Api\ProductsController;
|
|
use WooNooW\Api\CouponsController;
|
|
use WooNooW\Api\CustomersController;
|
|
use WooNooW\Api\NewsletterController;
|
|
use WooNooW\Frontend\ShopController;
|
|
use WooNooW\Frontend\CartController as FrontendCartController;
|
|
use WooNooW\Frontend\AccountController;
|
|
use WooNooW\Frontend\HookBridge;
|
|
use WooNooW\Api\Controllers\SettingsController;
|
|
use WooNooW\Api\Controllers\CartController as ApiCartController;
|
|
use WooNooW\Admin\AppearanceController;
|
|
|
|
class Routes {
|
|
public static function init() {
|
|
// Initialize controllers (register action hooks)
|
|
OrdersController::init();
|
|
AppearanceController::init();
|
|
|
|
// Initialize CartController auth bypass (must be before rest_api_init)
|
|
FrontendCartController::init();
|
|
|
|
// Log ALL REST API requests to debug routing
|
|
add_filter('rest_pre_dispatch', function($result, $server, $request) {
|
|
$route = $request->get_route();
|
|
$method = $request->get_method();
|
|
$result_type = is_null($result) ? 'NULL (will call handler)' : 'NON-NULL (handler bypassed!)';
|
|
error_log("WooNooW REST: {$method} {$route} - Result: {$result_type}");
|
|
if (!is_null($result)) {
|
|
error_log("WooNooW REST: BYPASSED! Result type: " . gettype($result));
|
|
}
|
|
return $result;
|
|
}, 10, 3);
|
|
|
|
add_action('rest_api_init', function () {
|
|
error_log('WooNooW Routes: rest_api_init hook fired');
|
|
$namespace = 'woonoow/v1';
|
|
|
|
// Auth endpoints (public - no permission check)
|
|
register_rest_route( $namespace, '/auth/login', [
|
|
'methods' => 'POST',
|
|
'callback' => [ AuthController::class, 'login' ],
|
|
'permission_callback' => '__return_true',
|
|
] );
|
|
|
|
register_rest_route( $namespace, '/auth/logout', [
|
|
'methods' => 'POST',
|
|
'callback' => [ AuthController::class, 'logout' ],
|
|
'permission_callback' => '__return_true',
|
|
] );
|
|
|
|
register_rest_route( $namespace, '/auth/check', [
|
|
'methods' => 'GET',
|
|
'callback' => [ AuthController::class, 'check' ],
|
|
'permission_callback' => '__return_true',
|
|
] );
|
|
|
|
// Defer to controllers to register their endpoints
|
|
CheckoutController::register();
|
|
OrdersController::register();
|
|
AnalyticsController::register_routes();
|
|
|
|
// Settings controller
|
|
$settings_controller = new SettingsController();
|
|
$settings_controller->register_routes();
|
|
|
|
// Cart controller (API) - DISABLED: Using Frontend CartController instead to avoid route conflicts
|
|
// $api_cart_controller = new ApiCartController();
|
|
// $api_cart_controller->register_routes();
|
|
|
|
// Payments controller
|
|
$payments_controller = new PaymentsController();
|
|
$payments_controller->register_routes();
|
|
|
|
// Store controller
|
|
$store_controller = new StoreController();
|
|
$store_controller->register_routes();
|
|
|
|
// Shipping controller
|
|
$shipping_controller = new ShippingController();
|
|
$shipping_controller->register_routes();
|
|
|
|
// Tax controller
|
|
$tax_controller = new TaxController();
|
|
$tax_controller->register_routes();
|
|
|
|
// Pickup locations controller
|
|
$pickup_controller = new PickupLocationsController();
|
|
$pickup_controller->register_routes();
|
|
|
|
// Email controller
|
|
$email_controller = new EmailController();
|
|
$email_controller->register_routes();
|
|
|
|
// Developer controller
|
|
$developer_controller = new DeveloperController();
|
|
$developer_controller->register_routes();
|
|
|
|
// System controller
|
|
$system_controller = new SystemController();
|
|
$system_controller->register_routes();
|
|
|
|
// Notifications controller
|
|
$notifications_controller = new NotificationsController();
|
|
$notifications_controller->register_routes();
|
|
|
|
// Activity Log controller
|
|
$activity_log_controller = new ActivityLogController();
|
|
$activity_log_controller->register_routes();
|
|
|
|
// Products controller
|
|
error_log('WooNooW Routes: Registering ProductsController routes');
|
|
ProductsController::register_routes();
|
|
error_log('WooNooW Routes: ProductsController routes registered');
|
|
|
|
// Coupons controller
|
|
CouponsController::register_routes();
|
|
|
|
// Customers controller
|
|
CustomersController::register_routes();
|
|
|
|
// Newsletter controller
|
|
NewsletterController::register_routes();
|
|
|
|
// Frontend controllers (customer-facing)
|
|
error_log('WooNooW Routes: Registering Frontend controllers');
|
|
ShopController::register_routes();
|
|
FrontendCartController::register_routes();
|
|
AccountController::register_routes();
|
|
HookBridge::register_routes();
|
|
error_log('WooNooW Routes: Frontend controllers registered');
|
|
});
|
|
}
|
|
}
|