feat(shop): complete storefront archive, seller edit, revenue

Wire product cat/tag archives to settings-driven sort and AJAX paging,
seller product options/video/params editing, revenue withdraw form and
order review submit — finishing remaining shop frontend gaps after buy-path.
This commit is contained in:
2026-07-12 10:38:02 +08:00
parent 5a8f08db8a
commit f3db6c89cc
17 changed files with 1024 additions and 248 deletions
@@ -352,7 +352,31 @@ class AKSRT_Admin_Shop_Controller extends AKSRT_Admin_Controller_Base {
'permission_callback' => [$this, 'check_logged_in_permission'],
]);
register_rest_route(self::API_NAMESPACE, '/shop/frontend/products/(?P<id>\d+)/favorite', [
register_rest_route(self::API_NAMESPACE, '/shop/frontend/products/archive', [
'methods' => 'GET',
'callback' => [$this, 'get_frontend_product_archive'],
'permission_callback' => '__return_true',
]);
register_rest_route(self::API_NAMESPACE, '/shop/frontend/revenue', [
'methods' => 'GET',
'callback' => [$this, 'get_frontend_revenue'],
'permission_callback' => [$this, 'check_logged_in_permission'],
]);
register_rest_route(self::API_NAMESPACE, '/shop/frontend/revenue/withdraw', [
'methods' => 'POST',
'callback' => [$this, 'create_frontend_withdraw'],
'permission_callback' => [$this, 'check_logged_in_permission'],
]);
register_rest_route(self::API_NAMESPACE, '/shop/frontend/orders/(?P<order_number>[A-Za-z0-9]+)/review', [
'methods' => 'POST',
'callback' => [$this, 'submit_frontend_product_review'],
'permission_callback' => [$this, 'check_logged_in_permission'],
]);
register_rest_route(self::API_NAMESPACE, '/shop/frontend/products/(?P<id>\d+)/favorite', [
'methods' => 'POST',
'callback' => [$this, 'toggle_frontend_product_favorite'],
'permission_callback' => [$this, 'check_logged_in_permission'],