feat(badges): dual-read/write wear_medal alias + default wear

Align badge wear meta with zibll and auto-pick first owned badge.
This commit is contained in:
kate522 committed 2026-07-19 01:45:44 +08:00
1 parent 379692d597
commit 8f17ac410b
1 file changed
+7 -1
+7 -1
View File
@@ -185,9 +185,14 @@ class Badges {
} }
$wear = sanitize_key((string) get_user_meta($user_id, self::META_WEAR, true)); $wear = sanitize_key((string) get_user_meta($user_id, self::META_WEAR, true));
if ($wear === '') { if ($wear === '') {
return ''; // zibll alias.
$wear = sanitize_key((string) get_user_meta($user_id, 'wear_medal', true));
} }
$owned = self::get_owned($user_id); $owned = self::get_owned($user_id);
if ($wear === '') {
// Default to newest/first owned badge when unset (zibll behavior).
return $owned[0] ?? '';
}
return in_array($wear, $owned, true) ? $wear : ''; return in_array($wear, $owned, true) ? $wear : '';
} }
@@ -211,6 +216,7 @@ class Badges {
return new \WP_Error('aksrt_badge_not_owned', __('尚未获得该徽章', 'aksrt'), ['status' => 403]); return new \WP_Error('aksrt_badge_not_owned', __('尚未获得该徽章', 'aksrt'), ['status' => 403]);
} }
update_user_meta($user_id, self::META_WEAR, $slug); update_user_meta($user_id, self::META_WEAR, $slug);
update_user_meta($user_id, 'wear_medal', $slug); // zibll alias
return true; return true;
} }