Files
wordpress-theme-aksrt/inc/helpers/user-center-renderers/transfer-modal.php
T
kate522andClaude Opus 5 5c6b422866 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>
2026-11-01 15:09:49 +08:00

55 lines
3.3 KiB
PHP

<?php
/**
* Shared transfer modal for balance and points assets.
*
* @package AKSRT
*/
defined('ABSPATH') || exit;
$transfer_recharge = class_exists('\AKSRT\Settings\Settings') && method_exists('\AKSRT\Settings\Settings', 'get_payment_recharge_settings')
? \AKSRT\Settings\Settings::get_payment_recharge_settings()
: [];
$transfer_all_settings = class_exists('\AKSRT\Settings\Settings') ? \AKSRT\Settings\Settings::get_all() : [];
$points_transfer_min = max(1, (int) ($transfer_all_settings['points_transfer_min'] ?? 1));
$points_transfer_fee = max(0, min(50, (int) ($transfer_all_settings['points_service_charge'] ?? 0)));
// 转账提示里的货币名跟随自定义名称(后台「积分配置 → 自定义货币名称」)。
$currency_name = (string) ($currency_name ?? __('积分', 'aksrt'));
?>
<div class="uc-modal" id="aksrt-transfer-modal" hidden data-aksrt-transfer-modal>
<div class="uc-modal__overlay" data-aksrt-transfer-close></div>
<div class="uc-modal__dialog" role="dialog" aria-modal="true">
<button type="button" class="uc-modal__close" data-aksrt-transfer-close aria-label="<?php esc_attr_e('关闭', 'aksrt'); ?>"><i class="fa fas fa-times" aria-hidden="true"></i></button>
<h3 class="uc-modal__title" data-aksrt-transfer-title><?php esc_html_e('余额转账', 'aksrt'); ?></h3>
<form data-aksrt-transfer-form>
<input type="hidden" name="type" value="balance" data-aksrt-transfer-type>
<div class="mb10">
<label class="muted-color em09"><?php esc_html_e('收款用户', 'aksrt'); ?></label>
<input type="search" class="uc-card-pass__input" data-aksrt-transfer-search placeholder="<?php esc_attr_e('搜索用户名/昵称/邮箱', 'aksrt'); ?>" autocomplete="off">
<div class="uc-transfer-results" data-aksrt-transfer-results></div>
<input type="hidden" name="recipient" value="" data-aksrt-transfer-recipient>
<div class="uc-transfer-selected muted-2-color em09 mt6" data-aksrt-transfer-selected></div>
</div>
<div class="mb10">
<label class="muted-color em09" data-aksrt-transfer-amount-label><?php esc_html_e('金额', 'aksrt'); ?></label>
<input type="number" class="uc-card-pass__input" name="amount" min="0.01" step="0.01" data-aksrt-transfer-amount>
</div>
<div data-aksrt-transfer-balance-info>
<?php if (!empty($transfer_recharge['transfer']['desc'])) : ?>
<div class="muted-box em09 mb10"><?php echo esc_html((string) $transfer_recharge['transfer']['desc']); ?></div>
<?php endif; ?>
<?php if (!empty($transfer_recharge['transfer']['service_charge'])) : ?>
<div class="c-yellow em09 mb10"><?php printf(esc_html__('转账将扣除 %s%% 手续费', 'aksrt'), esc_html((string) (int) $transfer_recharge['transfer']['service_charge'])); ?></div>
<?php endif; ?>
</div>
<div class="muted-box em09 mb10" hidden data-aksrt-transfer-points-info>
<?php printf(esc_html__('%s转账仅支持正整数,单笔至少 %d %s。', 'aksrt'), esc_html($currency_name), $points_transfer_min, esc_html($currency_name)); ?>
<?php if ($points_transfer_fee > 0) : ?>
<?php printf(esc_html__(' 将扣除 %d%% 手续费。', 'aksrt'), $points_transfer_fee); ?>
<?php endif; ?>
</div>
<button type="submit" class="but jb-blue btn-block" data-aksrt-transfer-submit><?php esc_html_e('确认转账', 'aksrt'); ?></button>
</form>
</div>
</div>