chore(branding): remove leftover upstream theme identifiers
The theme was renamed Zibll/子比 → AKSRT → Jio, but upstream branding survived the sweeps in CSS classes, the SVG sprite prefix, a persisted widget field ID, JS events, admin Vue class names, test infrastructure and docblocks. Renames: - zib-widget / zib-widget-wrap / zib-slider → jio-widget-box / jio-widget-box-wrap / jio-slider-box (jio-widget is taken by the modern widget shell, jio-box-* by the card primitives) - zib-partners-scroll + zps-* → jio-partners-scroll + jps-* - zib-combo-info-card + zci-* → jio-combo-info-card + jci-* - zibsvg- → jiosvg-, including the exported picker helpers and the fa-zibsvg- family-prefix guard - zibpay_type → pay_type; the dual-read fallback in PostQuery collapses to a single key - [zibajax="submit"] dropped (no PHP emitter); zib_ajax.success → jio_ajax.success - aks-* admin Vue classes → jio-* - zib_palette() → palette() User-facing vendor traces are gone: the floating "more" button default no longer ships a zibll.com link or 子比主题 marketing copy, the notice widget ships no preset promo entries, and the four 官网教程 links are removed from the post-list admin schema. Test infrastructure renamed to neutral names (docker-compose.reference.yml, Caddyfile, article-baseline.json, modern-widgets-contract.test.cjs) with their DB/volume/env/slug identifiers following. Kept intentionally, documented in tests/fixtures/README.md: the golden fixture reference fingerprint (a SHA-256 record of an external directory, read by validate-widget-golden / generate-widget-golden-fixture / audit-widget-system), the doesNotMatch guards that prove the old tokens are gone, and the reference theme's own meta key in the visual fixtures. No backward-compat or data migration: saved widget configs holding old icon keys or the old field ID silently lose them, per the project's rewrite-over-compatibility rule. Verified: 132/132 node contract tests, php tests/widget-system/run.php (146 assertions), audit-admin-contracts, audit-psr4-paths and validate-widget-golden all green; tracked bundles regenerated and in sync. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
42cc64106d
commit
427968a721
188 files changed
+915
-967
No files matched your search
@@ -2,8 +2,7 @@
|
||||
/**
|
||||
* Affiliate poster preview modal.
|
||||
*
|
||||
* 1:1 replica of the reference theme's poster-share modal (zibll js/poster-share.js
|
||||
* + css/main.css `.poster-share` block): a borderless 360px Bootstrap-style dialog
|
||||
* Poster-share modal: a borderless 360px Bootstrap-style dialog
|
||||
* centred by `.modal.flex.jc`, a `.loading-mask` overlay while the canvas renders,
|
||||
* and circular download/close buttons on a `.hover-show-con` layer that only fades
|
||||
* in on hover. The 推广海报 button lives in the revenue detail link row; the QR code
|
||||
|
||||
@@ -64,7 +64,7 @@ $points_signin_label = sprintf(__('签到领%s', 'jio'), $currency);
|
||||
</div>
|
||||
|
||||
<?php if ($points_exchange_on) :
|
||||
// 购买积分弹窗 — Zibll zibpay_get_points_pay_modal 1:1(商品盒 / 自定义 / 支付方式含卡密 / 立即支付)。
|
||||
// 购买积分弹窗(商品盒 / 自定义 / 支付方式含卡密 / 立即支付)。
|
||||
$pb_rate = max(1, (int) ($points_exchange['rate'] ?? 100));
|
||||
$pb_min_points = max(1, (int) ($points_exchange['min_points'] ?? 100));
|
||||
$pb_daily_max_points = max(1, (int) ($points_exchange['daily_max_points'] ?? 100000));
|
||||
@@ -109,7 +109,7 @@ $points_signin_label = sprintf(__('签到领%s', 'jio'), $currency);
|
||||
<?php if ($points_packages) : ?>
|
||||
<div class="muted-color mb6"><?php printf(esc_html__('请选择需购买的%s', 'jio'), esc_html($currency)); ?></div>
|
||||
<?php foreach ($points_packages as $pidx => $ppkg) : ?>
|
||||
<div class="zib-widget vip-product relative product-box<?php echo $pidx === 0 ? ' active' : ''; ?>" data-for="points_product" data-value="<?php echo esc_attr((string) $ppkg['key']); ?>">
|
||||
<div class="jio-widget-box vip-product relative product-box<?php echo $pidx === 0 ? ' active' : ''; ?>" data-for="points_product" data-value="<?php echo esc_attr((string) $ppkg['key']); ?>">
|
||||
<?php if (!empty($ppkg['tag'])) : ?>
|
||||
<div class="abs-right vip-tag badg jb-yellow"><?php echo esc_html((string) $ppkg['tag']); ?></div>
|
||||
<?php endif; ?>
|
||||
|
||||
@@ -100,7 +100,7 @@ $mark = (string) ($charge_view['currency_mark'] ?? '元');
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<!-- Charge modal — Zibll balance-charge modal 1:1 (refresh_modal shell + zibpay_get_balance_charge_modal) -->
|
||||
<!-- Charge modal — balance-charge modal (refresh_modal shell) -->
|
||||
<?php
|
||||
$charge_method_logos = [
|
||||
'balance' => 'pay-balance-logo.svg',
|
||||
@@ -124,7 +124,7 @@ $charge_mark_html = $charge_mark_symbol
|
||||
? '<span class="px12">' . esc_html($mark) . '</span>'
|
||||
: '';
|
||||
$charge_unit = $charge_mark_symbol ? '' : (string) $mark;
|
||||
// 与 Zibll 格式对齐(mark 前缀:最低充值¥1);mark 配置为单位(元)时用后缀:最低充值1元。
|
||||
// 充值额度文案(mark 前缀:最低充值¥1);mark 配置为单位(元)时用后缀:最低充值1元。
|
||||
$charge_limit_html = $charge_mark_symbol
|
||||
? sprintf(__('最低充值%1$s1,最高充值%1$s%2$s', 'jio'), $mark, $custom_limit)
|
||||
: sprintf(__('最低充值1%1$s,最高充值%2$s%1$s', 'jio'), $charge_unit, $custom_limit);
|
||||
@@ -156,7 +156,7 @@ $charge_custom_block = static function () use ($mark, $charge_mark_html, $charge
|
||||
$package_pay = $normalize_balance($pkg['pay_price'] ?? '');
|
||||
$package_saving_minor = max(0, $package_credit->minor() - $package_pay->minor());
|
||||
?>
|
||||
<div class="zib-widget vip-product relative product-box<?php echo $idx === 0 ? ' active' : ''; ?>" data-for="balance_product" data-value="<?php echo esc_attr((string) $pkg['key']); ?>">
|
||||
<div class="jio-widget-box vip-product relative product-box<?php echo $idx === 0 ? ' active' : ''; ?>" data-for="balance_product" data-value="<?php echo esc_attr((string) $pkg['key']); ?>">
|
||||
<?php if (!empty($pkg['tag'])) : ?>
|
||||
<div class="abs-right vip-tag badg jb-yellow"><?php echo esc_html((string) $pkg['tag']); ?></div>
|
||||
<?php endif; ?>
|
||||
|
||||
@@ -14,14 +14,14 @@ $info = is_array($snapshot['info'] ?? null) ? $snapshot['info'] : [];
|
||||
$application = is_array($snapshot['application'] ?? null) ? $snapshot['application'] : [];
|
||||
$status = (string) ($snapshot['status'] ?? '');
|
||||
$can_apply = !empty($snapshot['can_apply']);
|
||||
$auth_icon = function_exists('jio_icon_markup') ? jio_icon_markup('zibsvg-user-auth') : '<i class="fa fas fa-id-badge" aria-hidden="true"></i>';
|
||||
$close_icon = function_exists('jio_icon_markup') ? jio_icon_markup('zibsvg-close', 'ic-close') : '<i class="fa fas fa-times" aria-hidden="true"></i>';
|
||||
$auth_icon = function_exists('jio_icon_markup') ? jio_icon_markup('jiosvg-user-auth') : '<i class="fa fas fa-id-badge" aria-hidden="true"></i>';
|
||||
$close_icon = function_exists('jio_icon_markup') ? jio_icon_markup('jiosvg-close', 'ic-close') : '<i class="fa fas fa-times" aria-hidden="true"></i>';
|
||||
$config = [
|
||||
'restBase' => untrailingslashit(rest_url('jio/v1/identity/applications')),
|
||||
'nonce' => wp_create_nonce('wp_rest'),
|
||||
];
|
||||
?>
|
||||
<div class="colorful-bg c-blue flex jc zib-widget" style="padding: 40px 20px;" data-identity-root data-identity-config="<?php echo esc_attr(wp_json_encode($config)); ?>">
|
||||
<div class="colorful-bg c-blue flex jc jio-widget-box" style="padding: 40px 20px;" data-identity-root data-identity-config="<?php echo esc_attr(wp_json_encode($config)); ?>">
|
||||
<div class="colorful-make"></div>
|
||||
<div class="text-center">
|
||||
<div class="em4x"><?php echo $auth_icon; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></div>
|
||||
|
||||
@@ -47,8 +47,8 @@ extract($context, EXTR_SKIP); // phpcs:ignore WordPress.PHP.DontExtract.extract_
|
||||
</h1>
|
||||
<div class="uc-header__meta desc user-identity flex ac hh">
|
||||
<?php
|
||||
// 治理状态入口(参考主题 user_page_header_desc 钩子 / zib_get_user_ban_info_link:
|
||||
// 用户中心「封禁」元信息,点击打开查看禁封状态弹窗 → 申诉弹窗)。
|
||||
// 治理状态入口:用户中心「封禁」元信息,
|
||||
// 点击打开查看禁封状态弹窗 → 申诉弹窗。
|
||||
if (function_exists('jio_get_user_ban_info_link')) {
|
||||
echo jio_get_user_ban_info_link((int) $user_id); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- helper escapes internally.
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ $percentage = max(0, min(100, (int) ($progress['progress'] ?? 0)));
|
||||
<div class="jio-level-page">
|
||||
<div class="row jio-level-page__summary">
|
||||
<div class="col-md-5">
|
||||
<section class="zib-widget colorful-bg jb-vip1 jio-level-card jio-level-card--summary">
|
||||
<section class="jio-widget-box colorful-bg jb-vip1 jio-level-card jio-level-card--summary">
|
||||
<div class="colorful-make" aria-hidden="true"></div>
|
||||
<div class="jio-level-card__summary-inner">
|
||||
<div class="jio-level-card__identity">
|
||||
@@ -73,7 +73,7 @@ $percentage = max(0, min(100, (int) ($progress['progress'] ?? 0)));
|
||||
</section>
|
||||
</div>
|
||||
<div class="col-md-7">
|
||||
<section class="zib-widget colorful-bg c-gray jio-level-card jio-level-card--growth">
|
||||
<section class="jio-widget-box colorful-bg c-gray jio-level-card jio-level-card--growth">
|
||||
<div class="colorful-make" aria-hidden="true"></div>
|
||||
<div class="jio-level-card__growth-inner">
|
||||
<div class="jio-level-card__growth-head">
|
||||
@@ -107,7 +107,7 @@ $percentage = max(0, min(100, (int) ($progress['progress'] ?? 0)));
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section class="zib-widget jio-level-experience">
|
||||
<section class="jio-widget-box jio-level-experience">
|
||||
<div class="box-body">
|
||||
<div class="jio-level-tabs" role="tablist" aria-label="<?php esc_attr_e('经验记录', 'jio'); ?>">
|
||||
<a id="tab-integral-get" class="but mr6 is-active" data-jio-level-tab="tab_integral_get" href="#tab_integral_get" role="tab" aria-controls="tab_integral_get" aria-selected="true"><?php esc_html_e('获取经验值', 'jio'); ?></a>
|
||||
|
||||
@@ -15,7 +15,7 @@ require __DIR__ . '/sidebar-vip.php';
|
||||
require __DIR__ . '/sidebar-commerce.php';
|
||||
require __DIR__ . '/sidebar-creator.php';
|
||||
require __DIR__ . '/sidebar-nav.php';
|
||||
$drawer_trigger_icon = jio_icon_markup('zibsvg-menu');
|
||||
$drawer_trigger_icon = jio_icon_markup('jiosvg-menu');
|
||||
?>
|
||||
<button type="button" class="uc-sidebar__drawer-trigger" id="uc-drawer-trigger" aria-label="<?php esc_attr_e('打开导航', 'jio'); ?>">
|
||||
<?php echo $drawer_trigger_icon; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
|
||||
|
||||
@@ -25,7 +25,7 @@ $can_recover_password = $sign_in_available && ($reset_channel === 'email_phone'
|
||||
: ($reset_channel === 'phone' ? $account_phone !== '' : $account_email !== ''));
|
||||
$recovery_target = $reset_channel === 'phone' ? $account_phone : ($account_email !== '' ? $account_email : $account_phone);
|
||||
$recovery_channel = $reset_channel === 'email_phone' ? '' : $reset_channel;
|
||||
$account_close_icon = function_exists('jio_icon_markup') ? jio_icon_markup('zibsvg-close', 'ic-close') : '<i class="fa fas fa-times" aria-hidden="true"></i>';
|
||||
$account_close_icon = function_exists('jio_icon_markup') ? jio_icon_markup('jiosvg-close', 'ic-close') : '<i class="fa fas fa-times" aria-hidden="true"></i>';
|
||||
|
||||
$render_row = static function (string $icon, string $title, string $value, string $action, string $modal, string $icon_tone, string $action_tone, bool $interactive = true): void {
|
||||
?>
|
||||
|
||||
@@ -26,8 +26,8 @@ foreach ((array) ($oauth_data['bindings'] ?? []) as $binding) {
|
||||
if (!$key) {
|
||||
continue;
|
||||
}
|
||||
// Reference parity: the provider type (clogin_ prefix stripped) drives the
|
||||
// .social-login-item brand colour, matching zibll's binding list.
|
||||
// The provider type (clogin_ prefix stripped) drives the
|
||||
// .social-login-item brand colour.
|
||||
$icon_type = str_starts_with($key, 'clogin_') ? substr($key, 7) : $key;
|
||||
$binding_rows[$key] = [
|
||||
'key' => $key,
|
||||
|
||||
@@ -20,9 +20,9 @@ try {
|
||||
$wallet = '0.00';
|
||||
}
|
||||
$points = max(0, (int) ($credit_balance ?? 0));
|
||||
$wallet_icon = jio_icon_markup('zibsvg-money-color-2');
|
||||
$points_icon = jio_icon_markup('zibsvg-points-color');
|
||||
$arrow_icon = jio_icon_markup('zibsvg-right');
|
||||
$wallet_icon = jio_icon_markup('jiosvg-money-color-2');
|
||||
$points_icon = jio_icon_markup('jiosvg-points-color');
|
||||
$arrow_icon = jio_icon_markup('jiosvg-right');
|
||||
?>
|
||||
<div class="uc-sidebar__pair uc-sidebar__pair--assets">
|
||||
<?php if ($show_wallet) : ?>
|
||||
|
||||
@@ -2,9 +2,8 @@
|
||||
/**
|
||||
* User center sidebar: creator center / promotion center cards.
|
||||
*
|
||||
* 1:1 port of the reference theme zib_user_center_page_sidebar_income_rebate():
|
||||
* two zib-widget cards, each with an icon title row and two centered stats.
|
||||
* Navigation keeps the Jio <a href data-tab> contract instead of the reference click proxy.
|
||||
* Two jio-widget-box cards, each with an icon title row and two centered stats.
|
||||
* Navigation uses the Jio <a href data-tab> contract.
|
||||
*
|
||||
* @package Jio
|
||||
*/
|
||||
@@ -36,7 +35,7 @@ if ($creation_url !== '') {
|
||||
$centers[] = [
|
||||
'url' => $creation_url,
|
||||
'tab' => 'creator',
|
||||
'icon' => jio_icon_markup('zibsvg-merchant-color', 'mr6'),
|
||||
'icon' => jio_icon_markup('jiosvg-merchant-color', 'mr6'),
|
||||
'title' => __('创作中心', 'jio'),
|
||||
'first' => jio_cut_count($cash_income),
|
||||
'first_l' => __('现金收益', 'jio'),
|
||||
@@ -64,7 +63,7 @@ if ($revenue_url !== '') {
|
||||
$centers[] = [
|
||||
'url' => $revenue_url,
|
||||
'tab' => 'revenue',
|
||||
'icon' => jio_icon_markup('zibsvg-money-color', 'mr6'),
|
||||
'icon' => jio_icon_markup('jiosvg-money-color', 'mr6'),
|
||||
'title' => __('推广中心', 'jio'),
|
||||
'first' => $rebate_ratio . '%',
|
||||
'first_l' => __('比例', 'jio'),
|
||||
@@ -75,7 +74,7 @@ if ($revenue_url !== '') {
|
||||
?>
|
||||
<div class="uc-sidebar-centers flex ab jsb col-ml6<?php echo $user_id <= 0 ? ' signin-loader' : ''; ?>">
|
||||
<?php foreach ($centers as $center) : ?>
|
||||
<a style="flex: 1;" class="mb10-sm zib-widget padding-10 flex1 pointer" href="<?php echo esc_url($center['url']); ?>" data-tab="<?php echo esc_attr($center['tab']); ?>">
|
||||
<a style="flex: 1;" class="mb10-sm jio-widget-box padding-10 flex1 pointer" href="<?php echo esc_url($center['url']); ?>" data-tab="<?php echo esc_attr($center['tab']); ?>">
|
||||
<div class="muted-color em09 mb6 flex ac"><div class="overflow-hidden"><div class="text-ellipsis"><?php echo $center['icon']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?><?php echo esc_html($center['title']); ?></div></div><i class="ml6 fa fas fa-angle-right em12" aria-hidden="true"></i></div>
|
||||
<div class="flex jsa text-center"><div class=""><div class="font-bold em12"><?php echo esc_html($center['first']); ?></div><div class="px12 opacity5"><?php echo esc_html($center['first_l']); ?></div></div><div class="overflow-hidden"><div class="font-bold em12"><?php echo esc_html($center['second']); ?></div><div class="px12 opacity5 text-ellipsis"><?php echo esc_html($center['second_l']); ?></div></div></div>
|
||||
</a>
|
||||
|
||||
@@ -19,7 +19,7 @@ $orders_url = $orders_available ? (string) ($orders_url ?? '') : '';
|
||||
$tickets_available = isset($dashboard_tabs['tickets']);
|
||||
$tickets_url = $tickets_available ? jio_get_user_center_tab_url('tickets') : '';
|
||||
|
||||
// 参考主题由 zibpay 把「我的订单」前插到按钮组最前,其后才是等级 / 认证。
|
||||
// 「我的订单」位于按钮组最前,其后才是等级 / 认证。
|
||||
$services = array_values(array_filter([
|
||||
[
|
||||
'label' => __('我的订单', 'jio'),
|
||||
@@ -74,7 +74,7 @@ $render_grid = static function (array $items): void {
|
||||
<?php foreach ($items as $item) :
|
||||
$tab = (string) ($item['tab'] ?? '');
|
||||
$item_class = 'icon-but-' . ($tab !== '' ? $tab : 'item');
|
||||
$icon_html = jio_icon_markup('zibsvg-' . (string) $item['icon']);
|
||||
$icon_html = jio_icon_markup('jiosvg-' . (string) $item['icon']);
|
||||
?>
|
||||
<a class="<?php echo esc_attr($item_class); ?>" href="<?php echo esc_url((string) $item['url']); ?>"<?php if ($tab !== '') : ?> data-tab="<?php echo esc_attr($tab); ?>"<?php endif; ?>>
|
||||
<div class="em16"><?php echo $icon_html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></div>
|
||||
@@ -86,14 +86,14 @@ $render_grid = static function (array $items): void {
|
||||
};
|
||||
?>
|
||||
<?php if ($services) : ?>
|
||||
<div class="uc-sidebar-iconbox zib-widget padding-6 mb10-sm">
|
||||
<div class="uc-sidebar-iconbox jio-widget-box padding-6 mb10-sm">
|
||||
<div class="padding-6 ml3"><?php esc_html_e('我的服务', 'jio'); ?></div>
|
||||
<?php $render_grid($services); ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($settings) : ?>
|
||||
<div class="uc-sidebar-iconbox zib-widget padding-6">
|
||||
<div class="uc-sidebar-iconbox jio-widget-box padding-6">
|
||||
<div class="padding-6 ml3"><?php esc_html_e('功能设置', 'jio'); ?></div>
|
||||
<?php $render_grid($settings); ?>
|
||||
</div>
|
||||
|
||||
@@ -34,8 +34,8 @@ $stats = [
|
||||
],
|
||||
];
|
||||
?>
|
||||
<?php // 1:1 参考主题 zib_user_center_page_sidebar_statistics():单张 zib-widget,四项 space-around 平铺。 ?>
|
||||
<div class="uc-sidebar-statistics mb10-sm mb20 flex ac jsa zib-widget padding-10 text-center" aria-label="<?php esc_attr_e('账号统计', 'jio'); ?>">
|
||||
<?php // 单张 jio-widget-box,四项 space-around 平铺。 ?>
|
||||
<div class="uc-sidebar-statistics mb10-sm mb20 flex ac jsa jio-widget-box padding-10 text-center" aria-label="<?php esc_attr_e('账号统计', 'jio'); ?>">
|
||||
<?php foreach ($stats as $stat) : ?>
|
||||
<a class="user-statistics-item" href="<?php echo esc_url((string) $stat['url']); ?>"<?php if (!empty($stat['tab'])) : ?> data-tab="<?php echo esc_attr((string) $stat['tab']); ?>"<?php endif; ?>><div class="em14"><?php echo esc_html(jio_cut_count((int) $stat['value'])); ?></div><div class="em09 opacity5 mt6"><?php echo esc_html((string) $stat['label']); ?></div></a>
|
||||
<?php endforeach; ?>
|
||||
|
||||
@@ -2,10 +2,9 @@
|
||||
/**
|
||||
* User center sidebar: VIP entry.
|
||||
*
|
||||
* 1:1 port of the reference theme zib_user_center_page_sidebar_vip():
|
||||
* metallic payvip-icon bar, level icon + name + expiry badge for members,
|
||||
* Metallic payvip-icon bar, level icon + name + expiry badge for members,
|
||||
* vip_1 icon + "开通会员 尊享会员权益" otherwise, chevron pinned right.
|
||||
* Navigation keeps the Jio <a href data-tab> contract instead of the reference click proxy.
|
||||
* Navigation uses the Jio <a href data-tab> contract.
|
||||
*
|
||||
* @package Jio
|
||||
*/
|
||||
@@ -27,7 +26,7 @@ $vip_url = jio_get_user_center_tab_url('vip');
|
||||
|
||||
if ($vip_level > 0) {
|
||||
$vip_name = (string) ($vip_levels[$vip_level]['name_html'] ?? $vip_levels[$vip_level]['name'] ?? ('VIP' . $vip_level));
|
||||
// Same semantics as zib_get_user_vip_exp_date_text(): date / 会员已过期 / 永久会员,
|
||||
// Expiry badge: date / 会员已过期 / 永久会员,
|
||||
// and no badge at all when there is no expiry data.
|
||||
$expires = max(0, (int) ($vip_state['expires'] ?? 0));
|
||||
$exp_label = '';
|
||||
@@ -41,11 +40,11 @@ if ($vip_level > 0) {
|
||||
. '<span>' . wp_kses_post($vip_name) . '</span>';
|
||||
if ($exp_label !== '') {
|
||||
$button .= '<span class="ml10 badg jb-yellow vip-expdate-tag">'
|
||||
. jio_icon_markup('zibsvg-time', 'mr3')
|
||||
. jio_icon_markup('jiosvg-time', 'mr3')
|
||||
. esc_html($exp_label) . '</span>';
|
||||
}
|
||||
} else {
|
||||
$button = jio_icon_markup('zibsvg-vip_1', 'em12 mr6') . esc_html__('开通会员 尊享会员权益', 'jio');
|
||||
$button = jio_icon_markup('jiosvg-vip_1', 'em12 mr6') . esc_html__('开通会员 尊享会员权益', 'jio');
|
||||
}
|
||||
|
||||
$vip_class = 'uc-sidebar-vip mb20 mb10-sm main-radius payvip-icon btn-block badg pointer' . ($user_id <= 0 ? ' signin-loader' : '');
|
||||
|
||||
@@ -118,7 +118,7 @@ foreach ([1, 2] as $lv) {
|
||||
: '';
|
||||
$cta = __('开通', 'jio') . wp_kses_post($lv_name);
|
||||
$vip_attr = $lv;
|
||||
// 参考主题 zibpay_get_vip_card:续费/升级档位卡展示各自的一句话简介。
|
||||
// 续费/升级档位卡展示各自的一句话简介。
|
||||
$card_action = 'pay';
|
||||
$card_desc = $lv_desc;
|
||||
$lv_icon_url = esc_url((string) ($levels[$lv]['img_icon'] ?? ''));
|
||||
@@ -182,8 +182,8 @@ foreach ([1, 2] as $lv) {
|
||||
</div>
|
||||
|
||||
<?php
|
||||
// 积分兑换会员入口(参考主题 zibpay_user_page_tab_content_vip 1:1:档位购买卡
|
||||
// 下方的全宽横条;仅非会员 + 积分兑换开启 + 有可兑换套餐时输出)。
|
||||
// 积分兑换会员入口(档位购买卡下方的全宽横条;
|
||||
// 仅非会员 + 积分兑换开启 + 有可兑换套餐时输出)。
|
||||
echo jio_get_vip_points_exchange_entry_html($user_id, $level); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- 各字段已在生成时转义。
|
||||
?>
|
||||
</div>
|
||||
Reference in new issue
Block a user