fix(vip): honor manual membership changes
This commit is contained in:
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');
|
||||
|
||||
Reference in new issue
Block a user