fix(frontend): route every user-center points label through the custom currency name
后台「积分配置 → 自定义货币名称」改名后,用户中心仍有大量硬编码 「积分」:做任务赚积分 / 购买积分 / 签到领积分、积分记录 / 积分任务、 每日可免费获取 XX 积分、我的积分、积分+1、创作中心积分收益等。 get_currency_name() 早已存在且可用,问题只是这些文案没有走它。 本PR 全部替换,无双路、无迁移: 服务端渲染(用户中心 renderers) - credits-balance.php:购买/做任务赚/签到领 + 整个购买弹窗 - profile-credits.php:积分记录 / 积分任务 页签 - credits-points-tasks.php:每日上限三态与空态 - sidebar-creator.php / profile-creator.php:积分收益 - transfer-modal.php:积分转账提示 - Signin.php:签到详情弹窗(我的积分 / 奖励 tooltip / 积分+N) - VipServiceModal.php:我的积分 / 积分兑换会员 - download-permission-card.php:购买价格 客户端渲染(JS 无法调用 PHP,注入 currencyName 到 aksrtData) - signin.js:签到状态行「已签到 N 天 +1」 - credits.js:转账标题/金额标签 + 购买提示 toast - cms-download.js:积分不足视图、我的积分 入口、余额不足文案 - pay-vip.js:积分兑换会员入口(优先 catalog.currency_name) - order-center.js:订单行单位回退 契约测试同步改为断言模板构造而非死字符串,并新增两例: 改名后跟随、未注入时回退「积分」。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
1c95f94bca
commit
5c6b422866
19 files changed
+170
-59
No files matched your search
@@ -266,13 +266,13 @@ trait VipServiceModal {
|
||||
. '<svg class="ic-close" aria-hidden="true"><use xlink:href="#icon-close"></use></svg></button>'
|
||||
. '<b class="modal-title flex ac"><span class="mr6 em14">'
|
||||
. '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-vip_1"></use></svg></span>'
|
||||
. esc_html__('积分兑换会员', 'aksrt') . '</b></div>';
|
||||
. esc_html(sprintf(__('%s兑换会员', 'aksrt'), $currency)) . '</b></div>';
|
||||
|
||||
$user_box = '<div class="muted-box padding-h10 mb20">'
|
||||
. '<a rel="nofollow" class="flex jsb ac" href="' . esc_url($points_center_url) . '">'
|
||||
. '<span class="muted-2-color">'
|
||||
. '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-points"></use></svg> '
|
||||
. esc_html__('我的积分', 'aksrt') . '</span>'
|
||||
. esc_html(sprintf(__('我的%s', 'aksrt'), $currency)) . '</span>'
|
||||
. '<span class="font-bold ml6 em14"><span class="c-green mr10">' . $user_points . '</span>'
|
||||
. '<i class="fa fas fa-angle-right" aria-hidden="true"></i></span></a></div>';
|
||||
|
||||
|
||||
@@ -462,6 +462,9 @@ trait ScriptsPart1c {
|
||||
'captchaSignin' => function_exists('aksrt_is_captcha_enabled_for') && aksrt_is_captcha_enabled_for('signin'),
|
||||
// 已签到详情弹窗(签到成功后就地替换入口按钮用)。
|
||||
'signinDetailsUrl' => esc_url_raw(rest_url('aksrt/v1/signin/details')),
|
||||
// 自定义货币名称(后台「积分配置 → 自定义货币名称」),供前端
|
||||
// 无法服务端渲染的文案(签到状态行、购买/转账提示)复用同一命名。
|
||||
'currencyName' => class_exists('\\AKSRT\\Settings\\Settings') ? \AKSRT\Settings\Settings::get_currency_name() : __('积分', 'aksrt'),
|
||||
'visibilityNonce' => wp_create_nonce('aksrt_visibility'),
|
||||
'siteUrl' => home_url('/'),
|
||||
'themeUrl' => AKSRT_URI,
|
||||
|
||||
+14
-8
@@ -261,7 +261,7 @@ class Signin {
|
||||
|
||||
/**
|
||||
* 签到详情弹窗 HTML(参考主题 zib_get_user_checkin_details_modal 1:1):
|
||||
* 炫彩头部 + 用户卡片(我的积分/我的等级)+ 每日签到奖励卡 + 连续签到奖励 7 天迷你卡。
|
||||
* 炫彩头部 + 用户卡片(我的{货币名}/我的等级)+ 每日签到奖励卡 + 连续签到奖励 7 天迷你卡。
|
||||
*/
|
||||
public function render_details_modal_html(int $user_id): string {
|
||||
$user = get_userdata($user_id);
|
||||
@@ -295,10 +295,11 @@ class Signin {
|
||||
$html .= '<div class="mt10 em12 padding-w10">' . esc_html__('签到领奖励', 'aksrt') . '</div>';
|
||||
$html .= '</div></div>';
|
||||
|
||||
// 用户卡片(头像/昵称 + 我的积分 + 我的等级)
|
||||
// 用户卡片(头像/昵称 + 我的{货币名} + 我的等级)
|
||||
$points_svg_mini = $points_svg('px12 mr6 muted-2-color');
|
||||
$my_points_label = sprintf(__('我的%s', 'aksrt'), $currency);
|
||||
$user_card = '<a rel="nofollow" class="block flex1 muted-box padding-10" href="' . esc_url(aksrt_get_user_center_url('credits')) . '">
|
||||
<div class="muted-2-color em09 mb6">' . esc_html__('我的积分', 'aksrt') . '</div>
|
||||
<div class="muted-2-color em09 mb6">' . esc_html($my_points_label) . '</div>
|
||||
<div class="em12">' . $points_svg_mini . esc_html(number_format_i18n(aksrt_user_points($user_id))) . '<i class="muted-2-color px12 fa fas fa-angle-right ml6" aria-hidden="true"></i></div>
|
||||
</a>';
|
||||
|
||||
@@ -322,12 +323,17 @@ class Signin {
|
||||
}
|
||||
$html .= '<div class="mb20"><div class="flex ac jsb"><div class="mb10">' . $avatar_img . esc_html($user->display_name) . $name_badge . '</div>' . $checkin_all_day . '</div><div class="flex ab jsb">' . $user_card . '</div></div>';
|
||||
|
||||
// 每日签到奖励卡片(参考主题:积分徽章 + 经验值徽章,经验值随等级系统展示)
|
||||
$reward_badge = $base ? '<badge class=" p2-10 mr6 c-green" data-toggle="tooltip" title="' . esc_attr(sprintf(__('积分奖励%s', 'aksrt'), $base)) . '">' . $points_svg('icon') . '+' . esc_html((string) $base) . '</badge>' : '';
|
||||
$reward_badge .= ($level_s && $base) ? '<badge class=" p2-10 mr6 c-purple" data-toggle="tooltip" title="' . esc_attr(sprintf(__('经验值奖励%s', 'aksrt'), $base)) . '"><i class="fa fas fa-chart-line" aria-hidden="true"></i>+' . esc_html((string) $base) . '</badge>' : '';
|
||||
// 每日签到奖励卡片(参考主题:货币徽章 + 经验值徽章,经验值随等级系统展示)
|
||||
// tooltip 先拼入数值再转义,避免把 %s 送进 esc_attr。
|
||||
$reward_badge = $base
|
||||
? '<badge class=" p2-10 mr6 c-green" data-toggle="tooltip" title="' . esc_attr(sprintf(__('%s奖励%s', 'aksrt'), $currency, $base)) . '">' . $points_svg('icon') . '+' . esc_html((string) $base) . '</badge>'
|
||||
: '';
|
||||
$reward_badge .= ($level_s && $base)
|
||||
? '<badge class=" p2-10 mr6 c-purple" data-toggle="tooltip" title="' . esc_attr(sprintf(__('经验值奖励%s', 'aksrt'), $base)) . '"><i class="fa fas fa-chart-line" aria-hidden="true"></i>+' . esc_html((string) $base) . '</badge>'
|
||||
: '';
|
||||
|
||||
if ($signed_today) {
|
||||
$theday_reward = sprintf(__('积分', 'aksrt') . '+%d', (int) ($rec['reward'] ?? 0));
|
||||
$theday_reward = sprintf(__('%s', 'aksrt') . '+%d', $currency, (int) ($rec['reward'] ?? 0));
|
||||
if ($level_s) {
|
||||
// 签到经验值与积分奖励同额发放(Level::on_checkin)。
|
||||
$theday_reward .= ' ' . sprintf(__('经验值', 'aksrt') . '+%d', (int) ($rec['reward'] ?? 0));
|
||||
@@ -364,7 +370,7 @@ class Signin {
|
||||
}
|
||||
$_points = $base + $extra;
|
||||
$is_ed = $signed_today && $streak >= $d;
|
||||
$_mini_card = $_points ? '<div class="badg badg-sm ' . ($is_ed ? 'b' : 'c') . '-green" data-toggle="tooltip" title="' . esc_attr(sprintf(__('积分奖励%s', 'aksrt'), $_points)) . '">' . $points_svg('icon') . '<br/>+' . esc_html((string) $_points) . '</div>' : '';
|
||||
$_mini_card = $_points ? '<div class="badg badg-sm ' . ($is_ed ? 'b' : 'c') . '-green" data-toggle="tooltip" title="' . esc_attr(sprintf(__('%s奖励%s', 'aksrt'), $currency, $_points)) . '">' . $points_svg('icon') . '<br/>+' . esc_html((string) $_points) . '</div>' : '';
|
||||
if ($level_s && $_points) {
|
||||
// 经验值与积分奖励同额(Level::on_checkin),参考主题为紫色经验值迷你卡。
|
||||
$_mini_card .= '<div class="badg badg-sm ' . ($is_ed ? 'b' : 'c') . '-purple" data-toggle="tooltip" title="' . esc_attr(sprintf(__('经验值奖励%s', 'aksrt'), $_points)) . '"><i class="fa fas fa-chart-line" aria-hidden="true"></i><br/>+' . esc_html((string) $_points) . '</div>';
|
||||
|
||||
Reference in new issue
Block a user