fix(vip): preserve equity HTML instead of re-splitting into list items
This commit is contained in:
1 parent
ee5a16f9a0
commit
fce5ab3088
5 files changed
+110
-102
No files matched your search
@@ -57,35 +57,14 @@ trait VipServiceModal {
|
||||
$equity = (string) ($levels[$level]['equity'] ?? '');
|
||||
$cls = $user_id > 0 ? ' pay-vip' : ' signin-loader';
|
||||
|
||||
$equity_html = '';
|
||||
$equity_raw = trim(wp_kses_post($equity));
|
||||
if ($equity_raw !== '') {
|
||||
if (preg_match('/<li[\s>]/i', $equity_raw)) {
|
||||
$inner = preg_replace('#</?(ul|ol)[^>]*>#i', '', $equity_raw) ?? $equity_raw;
|
||||
$equity_html = '<ul class="mb10 relative v-equity">' . $inner . '</ul>';
|
||||
} else {
|
||||
$parts = preg_split('/[\r\n]+|[;;,,||]+/u', wp_strip_all_tags($equity_raw)) ?: [];
|
||||
$parts = array_values(array_filter(array_map('trim', $parts)));
|
||||
if (count($parts) === 1 && mb_strlen($parts[0]) > 16) {
|
||||
$chunks = preg_split('/(?=(?:免费|会员|更高|专属|付费|下载|身份|权益|折扣|无限))/u', $parts[0], -1, PREG_SPLIT_NO_EMPTY) ?: [];
|
||||
$chunks = array_values(array_filter(array_map('trim', $chunks)));
|
||||
if (count($chunks) > 1) {
|
||||
$parts = $chunks;
|
||||
}
|
||||
}
|
||||
if ($parts) {
|
||||
$equity_html = '<ul class="mb10 relative v-equity">';
|
||||
foreach ($parts as $p) {
|
||||
$equity_html .= '<li>' . esc_html($p) . '</li>';
|
||||
}
|
||||
$equity_html .= '</ul>';
|
||||
}
|
||||
}
|
||||
}
|
||||
// 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 = '<i class="fas fa-gem" aria-hidden="true"></i>';
|
||||
$html = '<div class="vip-card pointer level-' . $level . ' vip-theme' . $level . $cls . '" vip-level="' . $level . '">';
|
||||
$html .= '<div class="abs-center vip-baicon">' . $icon . '</div>';
|
||||
$html .= '<div class="vip-baicon" aria-hidden="true">' . $icon . '</div>';
|
||||
$html .= '<div class="vip-img abs-right">' . $icon . '</div>';
|
||||
$html .= '<div class="relative">';
|
||||
$html .= '<div class="vip-name mb10"><span class="mr6">' . $icon . '</span>' . esc_html($name) . '</div>';
|
||||
@@ -152,7 +131,9 @@ trait VipServiceModal {
|
||||
$panes .= '<div class="muted-2-color em09 mb6">' . esc_html($lv_desc) . '</div>';
|
||||
}
|
||||
if ($equity !== '') {
|
||||
$panes .= '<ul class="v-equity">' . $equity . '</ul>';
|
||||
$panes .= function_exists('aksrt_format_vip_equity_html')
|
||||
? aksrt_format_vip_equity_html($equity)
|
||||
: '<div class="v-equity">' . wp_kses_post($equity) . '</div>';
|
||||
}
|
||||
$panes .= '</div><div class="pay-vip-products">';
|
||||
$panes .= $products;
|
||||
@@ -230,7 +211,9 @@ trait VipServiceModal {
|
||||
$panes .= '<div class="pay-vip-info level-' . $lv . '">';
|
||||
$panes .= '<div class="v-name font-bold">' . esc_html($lv_name) . '</div>';
|
||||
if ($equity !== '') {
|
||||
$panes .= '<ul class="v-equity">' . $equity . '</ul>';
|
||||
$panes .= function_exists('aksrt_format_vip_equity_html')
|
||||
? aksrt_format_vip_equity_html($equity)
|
||||
: '<div class="v-equity">' . wp_kses_post($equity) . '</div>';
|
||||
}
|
||||
$panes .= '</div><div class="pay-vip-products">';
|
||||
$panes .= $products;
|
||||
|
||||
Reference in new issue
Block a user