perf(modal): unify cancellable frontend modal flows

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
kate522andClaude Fable 5 committed 2026-08-05 02:04:55 +08:00
1 parent 25ce1d8f43
commit 5375ad6429
36 files changed
+2623 -1806

No files matched your search

+1 -1
View File
@@ -13,7 +13,7 @@ class DBMigrator {
use DBMigratorIdentity;
/** Current schema version; changing it re-runs dbDelta. */
const SCHEMA_VERSION = '1.17.0';
const SCHEMA_VERSION = '1.18.0';
const OPT_KEY = 'aksrt_db_schema_version';
+1
View File
@@ -180,6 +180,7 @@ trait DBMigratorPart2 {
PRIMARY KEY (id),
UNIQUE KEY uniq_order_number (order_number),
KEY idx_user (user_id),
KEY idx_user_status_created (user_id, status, created_at),
KEY idx_status (status),
KEY idx_created (created_at),
KEY idx_product (product_type, product_id)
+20 -5
View File
@@ -209,9 +209,24 @@ $hmb_js = get_template_directory() . '/assets/js/header-newadd.js';
);
}
// VIP modal (zibll .pay-vip)
// Shared VIP purchase/poll coordinator for modal and credits surfaces.
$vip_on = class_exists('\AKSRT\Settings\Settings')
&& !empty(\AKSRT\Settings\Settings::get_payment_vip_settings()['enabled']);
$credits_on = is_user_logged_in()
&& class_exists('\AKSRT\Settings\Settings')
&& \AKSRT\Settings\Settings::credits_enabled();
$vip_coordinator = get_template_directory() . '/assets/js/vip-purchase-coordinator.js';
if (($vip_on || $credits_on) && file_exists($vip_coordinator)) {
wp_enqueue_script(
'aksrt-vip-coordinator',
$base_uri . '/assets/js/vip-purchase-coordinator.js',
['aksrt-core-request'],
(string) filemtime($vip_coordinator),
true
);
}
// VIP modal (zibll .pay-vip)
if ($vip_on) {
$vip_css = get_template_directory() . '/assets/css/frontend/vip-modal.css';
if (file_exists($vip_css)) {
@@ -227,7 +242,7 @@ $hmb_js = get_template_directory() . '/assets/js/header-newadd.js';
wp_enqueue_script(
'aksrt-pay-vip',
$base_uri . '/assets/js/pay-vip.js',
['aksrt-script', 'aksrt-core-request', 'aksrt-core-modal-runtime'],
['aksrt-script', 'aksrt-core-request', 'aksrt-core-modal-runtime', 'aksrt-vip-coordinator'],
(string) filemtime($vip_js),
true
);
@@ -449,7 +464,7 @@ $hmb_js = get_template_directory() . '/assets/js/header-newadd.js';
wp_enqueue_script(
'aksrt-route-user-center-auth',
$base_uri . '/assets/js/routes/user-center-auth.js',
['aksrt-script'],
['aksrt-script', 'aksrt-core-request', 'aksrt-core-modal-runtime'],
(string) filemtime($identity_js),
true
);
@@ -875,7 +890,7 @@ $hmb_js = get_template_directory() . '/assets/js/header-newadd.js';
}
// 积分相关:已登录 + 启用积分功能时全站加载
if (is_user_logged_in() && class_exists('\AKSRT\Settings\Settings') && \AKSRT\Settings\Settings::credits_enabled()) {
if ($credits_on) {
$enqueue_module('credits');
// profile 页:加载 credits.js(签到 + 邀请交互)
@@ -884,7 +899,7 @@ $hmb_js = get_template_directory() . '/assets/js/header-newadd.js';
wp_enqueue_script(
'aksrt-credits',
$base_uri . '/assets/js/credits.js',
['aksrt-script'],
['aksrt-script', 'aksrt-core-modal-runtime', 'aksrt-vip-coordinator'],
file_exists($credits_js_path) ? (string) filemtime($credits_js_path) : $version,
true
);