fix(vip): flatten panel and format membership summary
Remove the shared dashboard card around the VIP panel and render membership details as title, level, intro, and expiry rows. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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 = '<span class="badg c-green p2-10 em09"><i class="fas fa-clock mr3" aria-hidden="true"></i>' . esc_html__('永久会员', 'aksrt') . '</span>';
|
||||
$expiry_text = __('到期时间:永久会员', 'aksrt');
|
||||
$expiry_class = 'c-green';
|
||||
if ($level < 2) {
|
||||
$btn_type = 'upgrade';
|
||||
}
|
||||
} else {
|
||||
$badge = '<span class="badg c-yellow p2-10 em09"><i class="fas fa-clock mr3" aria-hidden="true"></i>'
|
||||
. esc_html(sprintf(__('到期时间:%s', 'aksrt'), wp_date('Y年m月d日', $expires))) . '</span>';
|
||||
$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 = '<div class="uc-vip-status">'
|
||||
. '<div class="uc-vip-status__label">' . esc_html__('我的会员', 'aksrt') . '</div>'
|
||||
. '<div class="uc-vip-status__body">'
|
||||
. '<div class="uc-vip-status__main flex ac">'
|
||||
. '<div class="em16 mr10 flex ac"><i class="fas fa-crown" aria-hidden="true"></i><div class="font-bold ml6">' . esc_html($lv_name) . '</div></div>'
|
||||
. $badge
|
||||
. '</div>'
|
||||
. '<div class="uc-vip-status__desc muted-color em09">' . esc_html($lv_desc !== '' ? $lv_desc : __('尊享专属特权', 'aksrt')) . '</div>'
|
||||
. '</div>'
|
||||
. '<div class="uc-vip-status__main"><i class="fas fa-crown" aria-hidden="true"></i><span class="font-bold">' . esc_html($lv_name) . '</span></div>'
|
||||
. '<div class="uc-vip-status__desc muted-color">' . esc_html($lv_desc !== '' ? $lv_desc : __('尊享专属特权', 'aksrt')) . '</div>'
|
||||
. '<div class="uc-vip-status__expiry ' . esc_attr($expiry_class) . '">' . esc_html($expiry_text) . '</div>'
|
||||
. '</div>';
|
||||
} 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 = '<div class="uc-vip-status">'
|
||||
. '<div class="uc-vip-status__label">' . esc_html__('我的会员', 'aksrt') . '</div>'
|
||||
. '<div class="uc-vip-status__body">'
|
||||
. '<div class="uc-vip-status__main flex ac">'
|
||||
. '<div class="em16 c-red mr10">' . esc_html__('已过期', 'aksrt') . '</div>'
|
||||
. '<div class="badg c-red em09"><i class="fas fa-clock mr3" aria-hidden="true"></i>' . esc_html($exp_label) . '</div>'
|
||||
. '</div>'
|
||||
. ($desc_top !== '' ? '<div class="uc-vip-status__desc muted-color em09">' . esc_html($desc_top) . '</div>' : '')
|
||||
. '</div>'
|
||||
. '<div class="uc-vip-status__main c-red"><i class="fas fa-crown" aria-hidden="true"></i><span class="font-bold">' . esc_html($expired_name) . '</span></div>'
|
||||
. '<div class="uc-vip-status__desc muted-color">' . esc_html($expired_desc) . '</div>'
|
||||
. '<div class="uc-vip-status__expiry c-red">' . esc_html($expiry_text) . '</div>'
|
||||
. '</div>';
|
||||
$btn_type = 'pay';
|
||||
} else {
|
||||
// Never opened VIP — zibll: 当前会员状态 / 未开通会员 / desc.
|
||||
// Never opened VIP: keep the same four-line summary shape.
|
||||
$status_html = '<div class="uc-vip-status">'
|
||||
. '<div class="uc-vip-status__label">' . esc_html__('我的会员', 'aksrt') . '</div>'
|
||||
. '<div class="uc-vip-status__body">'
|
||||
. '<div class="uc-vip-status__main flex ac">'
|
||||
. '<div class="em16 c-red mr10">' . esc_html__('未开通会员', 'aksrt') . '</div>'
|
||||
. '</div>'
|
||||
. '<div class="uc-vip-status__desc muted-color em09">' . esc_html($desc_top !== '' ? $desc_top : __('开通会员,尊享专属特权', 'aksrt')) . '</div>'
|
||||
. '</div>'
|
||||
. '<div class="uc-vip-status__main c-red"><i class="fas fa-crown" aria-hidden="true"></i><span class="font-bold">' . esc_html__('未开通会员', 'aksrt') . '</span></div>'
|
||||
. '<div class="uc-vip-status__desc muted-color">' . esc_html($desc_top !== '' ? $desc_top : __('开通会员,尊享专属特权', 'aksrt')) . '</div>'
|
||||
. '<div class="uc-vip-status__expiry muted-2-color">' . esc_html__('到期时间:未开通', 'aksrt') . '</div>'
|
||||
. '</div>';
|
||||
$btn_type = 'pay';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user