diff --git a/assets/css/routes/user-center/vip.css b/assets/css/routes/user-center/vip.css index 13105834..2e9e4be6 100644 --- a/assets/css/routes/user-center/vip.css +++ b/assets/css/routes/user-center/vip.css @@ -36,47 +36,60 @@ line-height: 1; } +.uc-content #panel-vip.dashboard-panel { + margin: 0; + padding: 0; + border: 0; + border-radius: 0; + background: transparent; + box-shadow: none; +} + .uc-vip-status { position: relative; z-index: 1; - display: grid; - grid-template-columns: auto minmax(0, 1fr); - align-items: start; - column-gap: 16px; - row-gap: 2px; + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 4px; min-width: 0; + text-align: left; } .uc-vip-status__label { - padding-top: 2px; - color: var(--muted-2-color, var(--color-ink-4)); - font-size: 13px; - font-weight: 600; - line-height: 1.45; - white-space: nowrap; -} - -.uc-vip-status__body { - min-width: 0; + color: var(--color-ink, var(--main-color, #172033)); + font-size: 14px; + font-weight: 700; + line-height: 1.4; } .uc-vip-status__main { - display: flex; + display: inline-flex; align-items: center; - flex-wrap: wrap; - gap: 6px; + gap: 7px; min-width: 0; + font-size: 1.15em; + line-height: 1.3; } -.uc-vip-status__main > .em16 { - margin-right: 0; - font-size: 1.2em; - line-height: 1.25; +.uc-vip-status__main > i { + color: var(--focus-color, var(--color-primary, #f04494)); + font-size: 0.95em; +} + +.uc-vip-status__desc, +.uc-vip-status__expiry { + min-width: 0; + font-size: 0.9em; + line-height: 1.4; } .uc-vip-status__desc { - margin-top: 3px; - line-height: 1.4; + margin-top: 1px; +} + +.uc-vip-status__expiry { + margin-top: 1px; } @media (max-width: 767px) { diff --git a/inc/helpers/user-center-renderers/vip-tab.php b/inc/helpers/user-center-renderers/vip-tab.php index 42019cbc..a2226560 100644 --- a/inc/helpers/user-center-renderers/vip-tab.php +++ b/inc/helpers/user-center-renderers/vip-tab.php @@ -25,57 +25,52 @@ $expired_level = (int) get_user_meta($user_id, 'aksrt_vip_level_expired', true); $levels = is_array($vip_settings['levels'] ?? null) ? $vip_settings['levels'] : []; $desc_top = (string) ($vip_settings['desc'] ?? ''); -// Status column (zibll my_vip_box). +// Membership summary: title → level → intro → expiry. $status_html = ''; $btn_type = 'pay'; if ($level > 0) { $lv_name = (string) ($levels[$level]['name'] ?? ('VIP' . $level)); $lv_desc = (string) ($levels[$level]['desc'] ?? ''); if ($expires <= 0) { - $badge = '' . esc_html__('永久会员', 'aksrt') . ''; + $expiry_text = __('到期时间:永久会员', 'aksrt'); + $expiry_class = 'c-green'; if ($level < 2) { $btn_type = 'upgrade'; } } else { - $badge = '' - . esc_html(sprintf(__('到期时间:%s', 'aksrt'), wp_date('Y年m月d日', $expires))) . ''; - $btn_type = 'renew_' . $level; + $expiry_text = sprintf(__('到期时间:%s', 'aksrt'), wp_date('Y年m月d日', $expires)); + $expiry_class = 'c-yellow'; + $btn_type = 'renew_' . $level; } $status_html = '
' . '
' . esc_html__('我的会员', 'aksrt') . '
' - . '
' - . '
' - . '
' . esc_html($lv_name) . '
' - . $badge - . '
' - . '
' . esc_html($lv_desc !== '' ? $lv_desc : __('尊享专属特权', 'aksrt')) . '
' - . '
' + . '
' . esc_html($lv_name) . '
' + . '
' . esc_html($lv_desc !== '' ? $lv_desc : __('尊享专属特权', 'aksrt')) . '
' + . '
' . esc_html($expiry_text) . '
' . '
'; } elseif ($expired_level > 0) { - $exp_label = $expires > 0 - ? sprintf(__('过期时间:%s', 'aksrt'), wp_date('Y年m月d日', $expires)) - : __('已过期', 'aksrt'); + $expired_name = (string) ($levels[$expired_level]['name'] ?? ('VIP' . $expired_level)); + $expired_desc = (string) ($levels[$expired_level]['desc'] ?? ''); + if ($expired_desc === '') { + $expired_desc = $desc_top !== '' ? $desc_top : __('会员已过期', 'aksrt'); + } + $expiry_text = $expires > 0 + ? sprintf(__('到期时间:%s', 'aksrt'), wp_date('Y年m月d日', $expires)) + : __('到期时间:已过期', 'aksrt'); $status_html = '
' . '
' . esc_html__('我的会员', 'aksrt') . '
' - . '
' - . '
' - . '
' . esc_html__('已过期', 'aksrt') . '
' - . '
' . esc_html($exp_label) . '
' - . '
' - . ($desc_top !== '' ? '
' . esc_html($desc_top) . '
' : '') - . '
' + . '
' . esc_html($expired_name) . '
' + . '
' . esc_html($expired_desc) . '
' + . '
' . esc_html($expiry_text) . '
' . '
'; $btn_type = 'pay'; } else { - // Never opened VIP — zibll: 当前会员状态 / 未开通会员 / desc. + // Never opened VIP: keep the same four-line summary shape. $status_html = '
' . '
' . esc_html__('我的会员', 'aksrt') . '
' - . '
' - . '
' - . '
' . esc_html__('未开通会员', 'aksrt') . '
' - . '
' - . '
' . esc_html($desc_top !== '' ? $desc_top : __('开通会员,尊享专属特权', 'aksrt')) . '
' - . '
' + . '
' . esc_html__('未开通会员', 'aksrt') . '
' + . '
' . esc_html($desc_top !== '' ? $desc_top : __('开通会员,尊享专属特权', 'aksrt')) . '
' + . '
' . esc_html__('到期时间:未开通', 'aksrt') . '
' . '
'; $btn_type = 'pay'; }