diff --git a/inc/helpers/user-center-renderers/settings-account.php b/inc/helpers/user-center-renderers/settings-account.php index b48c3793..38c7d69f 100644 --- a/inc/helpers/user-center-renderers/settings-account.php +++ b/inc/helpers/user-center-renderers/settings-account.php @@ -11,6 +11,7 @@ $account_user = isset($target_user) && $target_user instanceof WP_User ? $target $account_user_id = $account_user instanceof WP_User ? (int) $account_user->ID : (int) ($user_id ?? 0); $account_email = $account_user instanceof WP_User ? (string) $account_user->user_email : ''; $account_phone = $account_user_id > 0 ? (string) get_user_meta($account_user_id, 'phone_number', true) : ''; +$account_phone_display = strlen($account_phone) > 10 ? substr_replace($account_phone, '****', 3, 4) : $account_phone; $account_oauth_new = $account_user_id > 0 && get_user_meta($account_user_id, 'oauth_new', true); $user_settings = class_exists('\AKSRT\Settings\Settings') ? \AKSRT\Settings\Settings::get_all() : []; $sms_settings = class_exists('\AKSRT\Sms\SMS') ? \AKSRT\Sms\SMS::get_instance()->get_provider_config() : []; @@ -78,7 +79,7 @@ $render_phone_form = static function () use ($agreement): void {

-
+
@@ -146,7 +147,7 @@ $render_phone_form = static function () use ($agreement): void {
-

' . esc_html($account_phone) . ''); ?>

+

' . esc_html($account_phone_display) . ''); ?>

diff --git a/tests/widget-system/account-settings-contract.test.cjs b/tests/widget-system/account-settings-contract.test.cjs index 45d74fc8..4c0cef66 100644 --- a/tests/widget-system/account-settings-contract.test.cjs +++ b/tests/widget-system/account-settings-contract.test.cjs @@ -25,6 +25,10 @@ test('account dialogs expose configured email steps, phone steps, and reference assert.match(template, /data-aksrt-sms-scene="bind_new_phone"/); assert.match(template, /\$account_close_icon = function_exists\('aksrt_icon_markup'\)/); assert.match(template, / 10 \? substr_replace\(\$account_phone, '\*\*\*\*', 3, 4\)/); + assert.match(template, /\$account_phone !== '' \? \$account_phone_display : __\('暂未绑定'/); + assert.match(template, /' \. esc_html\(\$account_phone_display\)/); + assert.match(template, /name="phone" value="<\?php echo esc_attr\(\$account_phone\); \?>"/); assert.match(template, /aksrt_render_captcha\('change_email'\)[\s\S]*?id="email-code"/); assert.match(template, /aksrt_render_captcha\('bind_phone'\)[\s\S]*?id="bind-phone-code"/); assert.match(template, /if \(!\$account_oauth_new\)[\s\S]*?name="passwordold"/);