diff --git a/assets/css/routes/profile/layout.css b/assets/css/routes/profile/layout.css index c1c2a060..1a962bdf 100644 --- a/assets/css/routes/profile/layout.css +++ b/assets/css/routes/profile/layout.css @@ -419,13 +419,6 @@ background: none; border: none; } -.profile-form__submit-msg { - font-size: 14px; - color: var(--color-ink-3); -} -.profile-form__submit-msg.is-error { - color: var(--color-error); -} .profile-add-contact { margin-top: 8px; } diff --git a/assets/css/routes/profile/lists.css b/assets/css/routes/profile/lists.css index e2501d94..2f6f9ae4 100644 --- a/assets/css/routes/profile/lists.css +++ b/assets/css/routes/profile/lists.css @@ -449,10 +449,6 @@ color: var(--color-error); } -/* ---- 保存反馈 ---- */ -#profile-save-msg.success { color: var(--color-success); } -#profile-save-msg.error { color: var(--color-error); } - /* ==================== 账号设置区 ==================== */ .settings-section { margin-bottom: 20px; diff --git a/assets/js/routes/user-center.js b/assets/js/routes/user-center.js index 4ec42be7..d7554048 100644 --- a/assets/js/routes/user-center.js +++ b/assets/js/routes/user-center.js @@ -261,43 +261,49 @@ /* ==================== 个人信息保存 ==================== */ - function initProfileForm() { - var form = document.getElementById('profile-form'); + function initProfileForm(root) { + root = root || document; + var form = root.id === 'profile-form' ? root : root.querySelector('#profile-form'); if (!form) return; + if (form.dataset.aksrtProfileInitialized === 'true') return; + form.dataset.aksrtProfileInitialized = 'true'; form.addEventListener('submit', function(e) { e.preventDefault(); - var btn = document.getElementById('profile-save-btn'); - var msg = document.getElementById('profile-save-msg'); + var btn = form.querySelector('#profile-save-btn'); + if (!btn || btn.disabled) return; btn.disabled = true; btn.textContent = i18n.saving || '保存中…'; - msg.className = 'profile-form__submit-msg'; - msg.textContent = ''; + notyf(i18n.saving || '正在保存资料…', 'load', '', 'aksrt-profile-save-toast'); var data = new FormData(form); - data.append('user_id', String(userId)); + data.set('user_id', String(userId)); - fetch(ajaxUrl, { method: 'POST', body: data }) + fetch(ajaxUrl, { method: 'POST', credentials: 'same-origin', body: data }) .then(function(r) { return r.json(); }) .then(function(res) { btn.disabled = false; btn.textContent = i18n.saveBtn || '保存修改'; if (res.success) { - notyf(i18n.saved || '已保存'); + notyf((res.data && res.data.message) || i18n.saved || '保存成功!', 'success', 5, 'aksrt-profile-save-toast'); } else { - msg.className = 'profile-form__submit-msg is-error'; - msg.textContent = res.data.message || (i18n.saveFailed || '保存失败'); + notyf((res.data && res.data.message) || i18n.saveFailed || '保存失败', 'danger', 5, 'aksrt-profile-save-toast'); } }) .catch(function() { btn.disabled = false; btn.textContent = i18n.saveBtn || '保存修改'; - msg.className = 'profile-form__submit-msg is-error'; - msg.textContent = i18n.networkError || '网络错误,请重试'; + notyf(i18n.networkError || '网络错误,请重试', 'danger', 5, 'aksrt-profile-save-toast'); }); }); } + if (window.AksrtFrontend && typeof window.AksrtFrontend.register === 'function') { + window.AksrtFrontend.register('aksrt-profile-form', function(root) { + initProfileForm(root); + }); + } + function initAuthForm() { var root = document.querySelector('[data-identity-root]'); if (root && window.AKSRTUserCenterAuth && typeof window.AKSRTUserCenterAuth.init === 'function') { diff --git a/inc/helpers/user-center-renderers/profile-form.php b/inc/helpers/user-center-renderers/profile-form.php index d694fd59..97e1b065 100644 --- a/inc/helpers/user-center-renderers/profile-form.php +++ b/inc/helpers/user-center-renderers/profile-form.php @@ -64,6 +64,5 @@ $profile_details = isset($profile_details) && is_array($profile_details) ? $prof - diff --git a/src/Core/ScriptsPart1b.php b/src/Core/ScriptsPart1b.php index 4ffbe962..63ed268e 100644 --- a/src/Core/ScriptsPart1b.php +++ b/src/Core/ScriptsPart1b.php @@ -511,8 +511,8 @@ $hmb_js = get_template_directory() . '/assets/js/header-newadd.js'; ); } $user_center_deps = file_exists($identity_js) - ? ['aksrt-script', 'aksrt-route-user-center-auth'] - : ['aksrt-script']; + ? ['aksrt-script', 'aksrt-route-user-center-auth', 'aksrt-notyf'] + : ['aksrt-script', 'aksrt-notyf']; if ($has_orders_panel && wp_script_is('aksrt-order-center', 'registered')) { $user_center_deps[] = 'aksrt-order-center'; } diff --git a/templates/pages/page-profile.php b/templates/pages/page-profile.php index 1ca96564..cc6cc111 100644 --- a/templates/pages/page-profile.php +++ b/templates/pages/page-profile.php @@ -17,22 +17,6 @@ if (!is_user_logged_in()) { } $current_user = wp_get_current_user(); -$user_id = (int) $current_user->ID; - -if ('POST' === ($_SERVER['REQUEST_METHOD'] ?? '') && isset($_POST['action']) && 'aksrt_save_profile' === sanitize_key(wp_unslash($_POST['action']))) { - $nonce = isset($_POST['_profile_nonce']) ? sanitize_text_field(wp_unslash($_POST['_profile_nonce'])) : ''; - if (!wp_verify_nonce($nonce, 'aksrt_profile_save')) { - $result = new WP_Error('aksrt_profile_nonce', __('安全验证失败,请刷新页面重试', 'aksrt')); - } else { - $result = aksrt_save_user_center_profile($user_id, $_POST); - } - - $redirect_args = is_wp_error($result) - ? ['profile_error' => $result->get_error_message()] - : ['saved' => '1']; - wp_safe_redirect(add_query_arg($redirect_args, aksrt_get_user_center_tab_url('profile'))); - exit; -} $render_context = aksrt_get_user_center_render_context($current_user); @@ -49,11 +33,6 @@ get_header();