fix(user): repair phone binding and profile fields

This commit is contained in:
2026-10-05 20:55:20 +08:00
parent 0cf4639d95
commit f646fa8573
15 changed files with 627 additions and 162 deletions
+13 -11
View File
@@ -127,7 +127,7 @@ trait ServicePart1b {
}
// 绑定手机号
update_user_meta($user_id, 'aksrt_phone', $phone);
update_user_meta($user_id, 'phone_number', $phone);
update_user_meta($user_id, 'aksrt_phone_verified', '1');
// 自动登录
@@ -173,21 +173,23 @@ trait ServicePart1b {
return ['success' => false, 'error' => __('验证码错误或已过期', 'aksrt')];
}
// 检查手机号是否已被其他用户绑定
$user_id = get_current_user_id();
$existing = self::get_user_by_phone($phone);
if ($existing && (int) $existing->ID !== get_current_user_id()) {
if ($existing && (int) $existing->ID !== $user_id) {
return ['success' => false, 'error' => __('该手机号已被其他账号绑定', 'aksrt')];
}
if ($existing && (int) $existing->ID === $user_id) {
return ['success' => false, 'error' => __('手机号不能与当前绑定号码相同', 'aksrt')];
}
$user_id = get_current_user_id();
update_user_meta($user_id, 'aksrt_phone', $phone);
update_user_meta($user_id, 'aksrt_phone_verified', '1');
do_action('aksrt_user_phone_changed', $user_id, $phone);
return [
$old_phone = (string) get_user_meta($user_id, 'phone_number', true);
update_user_meta($user_id, 'phone_number', $phone);
update_user_meta($user_id, 'aksrt_phone_verified', '1');
do_action('aksrt_user_phone_changed', $user_id, $phone, $old_phone);
return [
'success' => true,
'message' => __('手机号绑定成功', 'aksrt'),
'message' => $old_phone !== '' ? __('手机号修改成功', 'aksrt') : __('手机号绑定成功', 'aksrt'),
];
}
@@ -196,7 +198,7 @@ trait ServicePart1b {
*/
private static function get_user_by_phone(string $phone): ?\WP_User {
$users = get_users([
'meta_key' => 'aksrt_phone',
'meta_key' => 'phone_number',
'meta_value' => $phone,
'number' => 1,
'fields' => 'all',