'
. esc_html__('请先登录后再开通会员。', 'aksrt')
. '';
}
$vip = class_exists('\AKSRT\Settings\Settings')
? \AKSRT\Settings\Settings::get_payment_vip_settings()
: ['enabled' => false];
if (empty($vip['enabled'])) {
return '
'
. esc_html__('会员功能未启用。', 'aksrt')
. '
';
}
$catalog = $this->get_catalog($user_id);
$user_level = (int) ($catalog['user_level'] ?? 0);
$prefer_level = max(1, min(2, $prefer_level));
if ($user_level > 0) {
return $this->render_modal_viped($user_id, $catalog, $vip, $prefer_level);
}
return $this->render_modal_pay($user_id, $catalog, $vip, $prefer_level);
}
/**
* Mini hover card for header (zibll zibpay_get_vip_card).
*/
public function render_vip_card(int $level, int $user_id = 0): string {
$level = max(1, min(2, $level));
$vip = class_exists('\AKSRT\Settings\Settings')
? \AKSRT\Settings\Settings::get_payment_vip_settings()
: [];
$levels = is_array($vip['levels'] ?? null) ? $vip['levels'] : [];
if (empty($levels[$level]['enabled'])) {
return '';
}
$name = (string) ($levels[$level]['name'] ?? ('VIP' . $level));
$desc = (string) ($levels[$level]['desc'] ?? '');
$equity = (string) ($levels[$level]['equity'] ?? '');
$cls = $user_id > 0 ? ' pay-vip' : ' signin-loader';
// Preserve admin equity HTML as-is (sanitize/wrap only; never re-split).
$equity_html = function_exists('aksrt_format_vip_equity_html')
? aksrt_format_vip_equity_html($equity, 'mb10 relative')
: '';
$icon = '';
$html .= '
';
$html .= '
- ' . $avatar . '
';
$html .= '- ' . esc_html($name) . '';
if ($desc !== '') {
$html .= '
' . esc_html($desc) . '
';
}
$html .= '
';
$html .= '
';
$html .= '
' . $panes . '
';
if ($more !== '') {
$html .= '
' . $more . '
';
}
$html .= $points;
$html .= '
';
return $html;
}
/**
* @param array