fix(orders): load user center assets before panel navigation
This commit is contained in:
+59
-23
@@ -462,6 +462,36 @@ $hmb_js = get_template_directory() . '/assets/js/header-newadd.js';
|
||||
['aksrt-route-profile'],
|
||||
file_exists($user_center_css_path) ? (string) filemtime($user_center_css_path) : $version
|
||||
);
|
||||
// Orders is a lazy user-center panel, so its independent assets must
|
||||
// be ready before client-side panel replacement can insert its markup.
|
||||
$has_orders_panel = false;
|
||||
if (class_exists('\AKSRT\User\Center')) {
|
||||
$dashboard_tabs = \AKSRT\User\Center::get_instance()->get_dashboard_tabs();
|
||||
$has_orders_panel = isset($dashboard_tabs['orders']);
|
||||
}
|
||||
if ($has_orders_panel) {
|
||||
$orders_css = get_template_directory() . '/assets/css/routes/orders.css';
|
||||
if (file_exists($orders_css)) {
|
||||
wp_enqueue_style(
|
||||
'aksrt-orders',
|
||||
$base_uri . '/assets/css/routes/orders.css',
|
||||
['aksrt-tokens'],
|
||||
(string) filemtime($orders_css)
|
||||
);
|
||||
}
|
||||
|
||||
$order_center_js = get_template_directory() . '/assets/js/order-center.js';
|
||||
if (file_exists($order_center_js)) {
|
||||
wp_enqueue_script(
|
||||
'aksrt-order-center',
|
||||
$base_uri . '/assets/js/order-center.js',
|
||||
['aksrt-script', 'aksrt-rehydrate', 'aksrt-core-request', 'aksrt-core-modal-runtime'],
|
||||
(string) filemtime($order_center_js),
|
||||
true
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$identity_js = get_template_directory() . '/assets/js/routes/user-center-auth.js';
|
||||
if (file_exists($identity_js)) {
|
||||
wp_enqueue_script(
|
||||
@@ -472,10 +502,16 @@ $hmb_js = get_template_directory() . '/assets/js/header-newadd.js';
|
||||
true
|
||||
);
|
||||
}
|
||||
$user_center_deps = file_exists($identity_js)
|
||||
? ['aksrt-script', 'aksrt-route-user-center-auth']
|
||||
: ['aksrt-script'];
|
||||
if ($has_orders_panel && wp_script_is('aksrt-order-center', 'registered')) {
|
||||
$user_center_deps[] = 'aksrt-order-center';
|
||||
}
|
||||
wp_enqueue_script(
|
||||
'aksrt-route-user-center',
|
||||
$base_uri . '/assets/js/routes/user-center.js',
|
||||
file_exists($identity_js) ? ['aksrt-script', 'aksrt-route-user-center-auth'] : ['aksrt-script'],
|
||||
$user_center_deps,
|
||||
file_exists(get_template_directory() . '/assets/js/routes/user-center.js')
|
||||
? (string) filemtime(get_template_directory() . '/assets/js/routes/user-center.js')
|
||||
: $version,
|
||||
@@ -671,30 +707,30 @@ $hmb_js = get_template_directory() . '/assets/js/header-newadd.js';
|
||||
}
|
||||
}
|
||||
|
||||
// 订单中心:独立页 / 虚拟 rewrite / 用户中心 tab=orders
|
||||
// 订单中心:独立页 / 虚拟 rewrite;用户中心在上方按可用 tab 预载。
|
||||
$is_orders_surface = is_page_template('templates/pages/page-orders.php')
|
||||
|| (bool) get_query_var('aksrt_orders')
|
||||
|| (
|
||||
(function_exists('aksrt_is_user_center_page') && aksrt_is_user_center_page())
|
||||
&& isset($_GET['tab'])
|
||||
&& sanitize_key((string) wp_unslash($_GET['tab'])) === 'orders'
|
||||
);
|
||||
|| (bool) get_query_var('aksrt_orders');
|
||||
if ($is_orders_surface) {
|
||||
wp_enqueue_style(
|
||||
'aksrt-orders',
|
||||
$base_uri . '/assets/css/routes/orders.css',
|
||||
['aksrt-tokens'],
|
||||
$version
|
||||
);
|
||||
wp_enqueue_script(
|
||||
'aksrt-order-center',
|
||||
$base_uri . '/assets/js/order-center.js',
|
||||
['aksrt-script', 'aksrt-core-request', 'aksrt-core-modal-runtime'],
|
||||
file_exists(get_template_directory() . '/assets/js/order-center.js')
|
||||
? (string) filemtime(get_template_directory() . '/assets/js/order-center.js')
|
||||
: $version,
|
||||
true
|
||||
);
|
||||
$orders_css = get_template_directory() . '/assets/css/routes/orders.css';
|
||||
if (file_exists($orders_css)) {
|
||||
wp_enqueue_style(
|
||||
'aksrt-orders',
|
||||
$base_uri . '/assets/css/routes/orders.css',
|
||||
['aksrt-tokens'],
|
||||
(string) filemtime($orders_css)
|
||||
);
|
||||
}
|
||||
|
||||
$order_center_js = get_template_directory() . '/assets/js/order-center.js';
|
||||
if (file_exists($order_center_js)) {
|
||||
wp_enqueue_script(
|
||||
'aksrt-order-center',
|
||||
$base_uri . '/assets/js/order-center.js',
|
||||
['aksrt-script', 'aksrt-rehydrate', 'aksrt-core-request', 'aksrt-core-modal-runtime'],
|
||||
(string) filemtime($order_center_js),
|
||||
true
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// 收益中心:旧路由重定向页 / 用户中心 tab=revenue。
|
||||
|
||||
Reference in New Issue
Block a user