fix(vip): honor manual membership changes

This commit is contained in:
kate522 committed 2026-08-11 16:03:06 +08:00
1 parent 49ba30efa4
commit ddc762bfbd
6 files changed
+145 -151

No files matched your search

@@ -19,7 +19,8 @@ if (empty($vip_settings['enabled'])) {
}
$user_id = (int) ($user_id ?? get_current_user_id());
$level = function_exists('aksrt_get_user_vip_level') ? aksrt_get_user_vip_level($user_id) : 0;
$vip_state = function_exists('aksrt_get_user_vip_state') ? aksrt_get_user_vip_state($user_id) : [];
$level = (int) ($vip_state['level'] ?? 0);
$points_exchange = [];
$user_points = 0;
$currency_name = __('积分', 'aksrt');
@@ -29,10 +30,12 @@ if (class_exists('\\AKSRT\\Content\\VipService')) {
$user_points = (int) ($vip_catalog['user_points'] ?? 0);
$currency_name = (string) ($vip_catalog['currency_name'] ?? $currency_name);
}
$expires = (int) get_user_meta($user_id, 'aksrt_vip_expires', true);
$base_level = (int) get_user_meta($user_id, 'aksrt_vip_base_level', true);
$base_expires = (int) get_user_meta($user_id, 'aksrt_vip_base_expires', true);
$expired_level = (int) get_user_meta($user_id, 'aksrt_vip_level_expired', true);
$expires = max(0, (int) ($vip_state['expires'] ?? 0));
$base_level = 0;
$base_expires = 0;
$expired_level = min(2, max(0, (int) ($vip_state['expired_level'] ?? 0)));
$vip_state_name = (string) ($vip_state['state'] ?? 'unopened');
$vip_state_source = (string) ($vip_state['source'] ?? 'none');
$levels = is_array($vip_settings['levels'] ?? null) ? $vip_settings['levels'] : [];
$desc_top = (string) ($vip_settings['desc'] ?? '');
@@ -52,7 +55,7 @@ if ($level > 0) {
$level_desc = (string) ($levels[$level]['desc'] ?? '');
$vip_description = $level_desc !== '' ? $level_desc : __('尊享专属特权', 'aksrt');
if ($expires <= 0) {
if ($expires <= 0 && $vip_state_source !== 'order') {
$vip_state = 'permanent';
$vip_state_label = __('永久有效', 'aksrt');
$vip_expiry_text = __('到期时间:永久会员', 'aksrt');