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:
2026-07-19 01:45:44 +08:00
parent 379692d597
commit 8f17ac410b
+7 -1
View File
@@ -185,9 +185,14 @@ class Badges {
}
$wear = sanitize_key((string) get_user_meta($user_id, self::META_WEAR, true));
if ($wear === '') {
return '';
// zibll alias.
$wear = sanitize_key((string) get_user_meta($user_id, 'wear_medal', true));
}
$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 : '';
}
@@ -211,6 +216,7 @@ class Badges {
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, 'wear_medal', $slug); // zibll alias
return true;
}