Files
wordpress-theme-aksrt/inc/helpers/user-center-renderers/transfer-modal.php
T
kate522 1247f9bf4e feat(credits): exchange balance for points
Replace the legacy points-to-balance and external points purchase flows
with direct integer balance-to-points exchange. Enforce exchange and
points-transfer limits and capability checks across the UI and REST API.
2026-08-13 15:20:06 +08:00

54 lines
3.1 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)));
?>
<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="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__('积分转账仅支持正整数,单笔至少 %d 积分。', 'aksrt'), $points_transfer_min); ?>
<?php if ($points_transfer_fee > 0) : ?>
<?php printf(esc_html__(' 将扣除 %d%% 手续费。', 'aksrt'), $points_transfer_fee); ?>
<?php endif; ?>
</div>
<p class="uc-modal__tip" data-aksrt-transfer-tip></p>
<button type="submit" class="but jb-blue btn-block" data-aksrt-transfer-submit><?php esc_html_e('确认转账', 'aksrt'); ?></button>
</form>
</div>
</div>