后台「积分配置 → 自定义货币名称」改名后,用户中心仍有大量硬编码 「积分」:做任务赚积分 / 购买积分 / 签到领积分、积分记录 / 积分任务、 每日可免费获取 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>
96 lines
4.1 KiB
PHP
96 lines
4.1 KiB
PHP
<?php
|
|
/**
|
|
* User center assets panel orchestrator (wallet + points).
|
|
*
|
|
* legacy user-tab-balance parity: dual cards + tabbed ledgers.
|
|
*
|
|
* @package AKSRT
|
|
*/
|
|
|
|
defined('ABSPATH') || exit;
|
|
|
|
$context = is_array($args['context'] ?? null) ? $args['context'] : [];
|
|
extract($context, EXTR_SKIP); // phpcs:ignore WordPress.PHP.DontExtract.extract_extract
|
|
|
|
$dir = __DIR__;
|
|
$show_wallet = !empty($balance_enabled);
|
|
$show_credits = !empty($credits_enabled);
|
|
// 记录/任务页签文案跟随自定义货币名称(后台「积分配置 → 自定义货币名称」)。
|
|
$currency_name = (string) ($currency_name ?? __('积分', 'aksrt'));
|
|
$points_record_label = sprintf(__('%s记录', 'aksrt'), $currency_name);
|
|
$points_tasks_label = sprintf(__('%s任务', 'aksrt'), $currency_name);
|
|
|
|
// Dual cards row (legacy row gutters-10).
|
|
if ($show_wallet || $show_credits) :
|
|
?>
|
|
<div class="uc-assets-row<?php echo ($show_wallet && $show_credits) ? ' uc-assets-row--dual' : ''; ?>">
|
|
<?php if ($show_wallet) : ?>
|
|
<div class="uc-assets-col">
|
|
<?php require $dir . '/credits-wallet.php'; ?>
|
|
</div>
|
|
<?php endif; ?>
|
|
<?php if ($show_credits) : ?>
|
|
<div class="uc-assets-col">
|
|
<?php require $dir . '/credits-balance.php'; ?>
|
|
</div>
|
|
<?php endif; ?>
|
|
</div>
|
|
<?php
|
|
endif;
|
|
|
|
if ($show_wallet || $show_credits) {
|
|
require $dir . '/transfer-modal.php';
|
|
}
|
|
|
|
// Tabbed ledgers (legacy record tabs).
|
|
if ($show_wallet || $show_credits) :
|
|
$show_tasks = $show_credits && class_exists('\AKSRT\Credits\PointsFree') && \AKSRT\Credits\PointsFree::enabled();
|
|
$asset_request = is_array($asset_request ?? null) ? $asset_request : [];
|
|
$requested_asset = in_array(($asset_request['asset'] ?? ''), ['balance', 'points'], true) ? $asset_request['asset'] : '';
|
|
$active_record = $requested_asset !== ''
|
|
? $requested_asset
|
|
: ($show_wallet ? 'balance' : 'points');
|
|
?>
|
|
<div class="uc-asset-tabs">
|
|
<ul class="uc-asset-tabs__nav list-inline tab-nav-theme font-bold">
|
|
<?php if ($show_wallet) : ?>
|
|
<li class="<?php echo $active_record === 'balance' ? 'active' : ''; ?>">
|
|
<a href="#record_tab_balance" data-aksrt-asset-tab="balance"><?php esc_html_e('余额记录', 'aksrt'); ?></a>
|
|
</li>
|
|
<?php endif; ?>
|
|
<?php if ($show_credits) : ?>
|
|
<li class="<?php echo $active_record === 'points' ? 'active' : ''; ?>">
|
|
<a href="#record_tab_points" data-aksrt-asset-tab="points"><?php echo esc_html($points_record_label); ?></a>
|
|
</li>
|
|
<?php endif; ?>
|
|
<?php if (!empty($show_tasks)) : ?>
|
|
<li class="<?php echo in_array($active_record, ['points_free', 'points_date'], true) ? 'active' : ''; ?>">
|
|
<a href="#record_tab_points_free" data-aksrt-asset-tab="points_free"><?php echo esc_html($points_tasks_label); ?></a>
|
|
</li>
|
|
<?php endif; ?>
|
|
</ul>
|
|
<div class="uc-asset-tabs__content tab-content">
|
|
<?php if ($show_wallet) : ?>
|
|
<div class="tab-pane<?php echo $active_record === 'balance' ? ' is-active' : ''; ?>" id="record_tab_balance" data-aksrt-asset-pane="balance"<?php echo $active_record === 'balance' ? '' : ' hidden'; ?>>
|
|
<?php require $dir . '/credits-wallet-ledger.php'; ?>
|
|
</div>
|
|
<?php endif; ?>
|
|
<?php if ($show_credits) : ?>
|
|
<div class="tab-pane<?php echo $active_record === 'points' ? ' is-active' : ''; ?>" id="record_tab_points" data-aksrt-asset-pane="points"<?php echo $active_record === 'points' ? '' : ' hidden'; ?>>
|
|
<?php require $dir . '/credits-transactions.php'; ?>
|
|
</div>
|
|
<?php endif; ?>
|
|
<?php if (!empty($show_tasks)) : ?>
|
|
<div class="tab-pane<?php echo $active_record === 'points_free' ? ' is-active' : ''; ?>" id="record_tab_points_free" data-aksrt-asset-pane="points_free"<?php echo $active_record === 'points_free' ? '' : ' hidden'; ?>>
|
|
<?php $points_tasks_pane = 'tasks'; require $dir . '/credits-points-tasks.php'; ?>
|
|
</div>
|
|
<div class="tab-pane<?php echo $active_record === 'points_date' ? ' is-active' : ''; ?>" id="tab_points_date" data-aksrt-asset-pane="points_date"<?php echo $active_record === 'points_date' ? '' : ' hidden'; ?>>
|
|
<?php $points_tasks_pane = 'date'; require $dir . '/credits-points-tasks.php'; ?>
|
|
</div>
|
|
<?php endif; ?>
|
|
</div>
|
|
</div>
|
|
<?php
|
|
endif;
|
|
?>
|