fix(vip): honor manual membership changes

This commit is contained in:
2026-08-11 16:03:06 +08:00
parent 49ba30efa4
commit ddc762bfbd
6 changed files with 145 additions and 151 deletions
+6 -4
View File
@@ -52,10 +52,11 @@ trait VipServicePurchase {
return $this->vip_member_cache[$user_id];
}
$level = $user_id > 0 && function_exists('aksrt_get_user_vip_level')
? (int) aksrt_get_user_vip_level($user_id)
: 0;
$expires = $user_id > 0 ? (int) get_user_meta($user_id, 'aksrt_vip_expires', true) : 0;
$vip_state = $user_id > 0 && function_exists('aksrt_get_user_vip_state')
? aksrt_get_user_vip_state($user_id)
: ['level' => 0, 'expires' => 0, 'state' => 'unopened', 'source' => 'none'];
$level = (int) ($vip_state['level'] ?? 0);
$expires = max(0, (int) ($vip_state['expires'] ?? 0));
$member_state = 'unopened';
if ($level > 0) {
$member_state = $expires <= 0
@@ -71,6 +72,7 @@ trait VipServicePurchase {
'expires' => $expires,
'is_permanent' => $level > 0 && $expires <= 0,
'state' => $member_state,
'source' => (string) ($vip_state['source'] ?? 'none'),
'expires_label' => $member_state === 'expired'
? __('已过期', 'aksrt')
: $this->format_expires_label($expires, $level),