diff --git a/inc/helpers/user-center-renderers/vip-tab.php b/inc/helpers/user-center-renderers/vip-tab.php
index 7fd5319a..dfa31bab 100644
--- a/inc/helpers/user-center-renderers/vip-tab.php
+++ b/inc/helpers/user-center-renderers/vip-tab.php
@@ -93,7 +93,8 @@ $status_html = '
'
. '' . esc_html($vip_state_label) . ''
. '
'
. ''
- . '' . $status_icon . ''
+ // 未开通(level 0)不输出图标位:名称前不放通用证书图标。
+ . ($vip_level_number > 0 ? '' . $status_icon . '' : '')
. '' . esc_html($vip_level_name) . ''
. '
'
. '' . esc_html($vip_description) . '
'
diff --git a/tests/widget-system/vip-tab-status-card.test.cjs b/tests/widget-system/vip-tab-status-card.test.cjs
index 3e05222a..d5471c3e 100644
--- a/tests/widget-system/vip-tab-status-card.test.cjs
+++ b/tests/widget-system/vip-tab-status-card.test.cjs
@@ -34,3 +34,10 @@ test('生效中/永久/已过期分支仍产出到期文案', () => {
const assignments = vipTab.match(/\$vip_expiry_text\s*=/g) || [];
assert.ok(assignments.length >= 4, '初始化 + 永久 + 生效中 + 已过期均应赋值');
});
+
+test('未开通状态名称前不渲染图标位', () => {
+ // 图标位仅在有等级(生效中/永久/已过期)时输出;未开通(level 0)不输出,
+ // 避免「未开通会员」前面挂通用证书图标。
+ assert.match(vipTab, /\$vip_level_number > 0 \? '' . \$status_icon"), '图标位不应再无条件渲染');
+});