Files
wordpress-theme-aksrt/inc/helpers/user-center-renderers/credits-balance.php
T
2026-08-18 03:09:37 +08:00

103 lines
5.8 KiB
PHP

<?php
/**
* User center credits: points asset card + sign-in + credits card-pass.
*
* @package AKSRT
*/
defined('ABSPATH') || exit;
$balance = (float) ($credit_balance ?? 0.0);
$credits_enabled = !empty($credits_enabled);
if (!$credits_enabled) {
return;
}
$card_pass_credits = ['enabled' => false, 'desc' => '', 'only_password' => true];
if (class_exists('\AKSRT\Payment\ChargeCard')) {
$opts = \AKSRT\Payment\ChargeCard::get_instance()->get_public_options();
$card_pass_credits = is_array($opts['credits'] ?? null) ? $opts['credits'] : $card_pass_credits;
}
$all_settings = class_exists('\AKSRT\Settings\Settings') ? \AKSRT\Settings\Settings::get_all() : [];
$points_uid = (int) ($user_id ?? get_current_user_id());
$points_transfer_on = !empty($all_settings['points_transfer_s']);
if ($points_transfer_on && class_exists('\AKSRT\Settings\Capabilities') && !\AKSRT\Settings\Capabilities::user_can('points_transfer', $points_uid)) {
$points_transfer_on = false;
}
$points_transfer_min = max(1, (int) ($all_settings['points_transfer_min'] ?? 1));
$points_exchange = class_exists('\AKSRT\Settings\Settings') ? \AKSRT\Settings\Settings::get_payment_recharge_settings()['points_exchange'] ?? [] : [];
$points_exchange_on = !empty($points_exchange['enabled']) && class_exists('\AKSRT\Credits\Balance') && \AKSRT\Credits\Balance::enabled();
$currency = (string) ($currency_name ?? __('积分', 'aksrt'));
?>
<div class="uc-asset-card uc-asset-card--points">
<div class="uc-asset-card__head flex jsb ac">
<div class="uc-asset-card__title">
<i class="fas fa-coins em12 mr6" aria-hidden="true"></i><?php echo esc_html($currency); ?>
</div>
<span class="uc-asset-card__head-action muted-color px12" data-aksrt-signin>
<button type="button" class="uc-asset-card__signin muted-color px12" data-signin-btn disabled>
<?php esc_html_e('签到领积分', 'aksrt'); ?><i class="fa fa-angle-right em12 ml3" aria-hidden="true"></i>
</button>
<span class="uc-asset-card__signin-status" data-signin-status></span>
</span>
</div>
<div class="uc-asset-card__body flex jsb ac">
<div class="uc-asset-card__amount c-green">
<span class="uc-asset-card__value font-bold"><?php echo esc_html(function_exists('aksrt_format_credits') ? aksrt_format_credits((int) $balance) : (string) (int) $balance); ?></span>
</div>
<div class="uc-asset-card__actions flex0">
<?php if ($points_transfer_on) : ?>
<button type="button" class="but c-green mr6 hollow" data-aksrt-transfer-open="points" data-aksrt-transfer-min="<?php echo esc_attr((string) $points_transfer_min); ?>"><?php esc_html_e('转账', 'aksrt'); ?></button>
<?php endif; ?>
<?php if ($points_exchange_on) : ?>
<button type="button" class="but c-green hollow" data-aksrt-points-exchange-open><?php esc_html_e('购买积分', 'aksrt'); ?></button>
<?php endif; ?>
</div>
</div>
<button type="button" class="uc-asset-card__link muted-2-color em09" data-aksrt-asset-tab="points_free"><?php esc_html_e('做任务赚积分', 'aksrt'); ?><i class="fa fa-angle-right em12 ml3" aria-hidden="true"></i></button>
</div>
<?php if ($points_exchange_on) :
$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));
?>
<div class="uc-modal" id="aksrt-points-exchange-modal" hidden data-aksrt-points-exchange-modal>
<div class="uc-modal__overlay" data-aksrt-points-exchange-close></div>
<div class="uc-modal__dialog" role="dialog" aria-modal="true">
<button type="button" class="uc-modal__close" data-aksrt-points-exchange-close aria-label="<?php esc_attr_e('关闭', 'aksrt'); ?>"><i class="fas fa-times" aria-hidden="true"></i></button>
<h3 class="uc-modal__title"><i class="fas fa-coins mr6" aria-hidden="true"></i><?php esc_html_e('购买积分', 'aksrt'); ?></h3>
<?php if (!empty($points_exchange['desc'])) : ?>
<div class="uc-modal__desc muted-box em09"><?php echo esc_html((string) $points_exchange['desc']); ?></div>
<?php endif; ?>
<form data-aksrt-points-exchange-form>
<label class="muted-color em09"><?php esc_html_e('兑换余额', 'aksrt'); ?></label>
<input type="number" class="uc-card-pass__input" name="amount" min="1" step="1" inputmode="numeric" data-aksrt-points-exchange-amount data-aksrt-points-exchange-rate="<?php echo esc_attr((string) $pb_rate); ?>">
<p class="muted-2-color em09 mt6"><?php printf(esc_html__('1 余额 = %d 积分;单笔至少 %d 积分,每日最多 %d 积分。', 'aksrt'), $pb_rate, $pb_min_points, $pb_daily_max_points); ?></p>
<p class="muted-2-color em09 mt6" data-aksrt-points-exchange-preview></p>
<button type="submit" class="but jb-blue btn-block mt10"><?php esc_html_e('立即购买', 'aksrt'); ?></button>
</form>
</div>
</div>
<?php endif; ?>
<?php if (!empty($card_pass_credits['enabled'])) : ?>
<div class="uc-card-pass" data-aksrt-card-pass="credits">
<div class="uc-card-pass__title">
<i class="fas fa-ticket-alt" aria-hidden="true"></i>
<span><?php esc_html_e('卡密兑换积分', 'aksrt'); ?></span>
</div>
<?php if (!empty($card_pass_credits['desc'])) : ?>
<p class="uc-card-pass__desc"><?php echo esc_html((string) $card_pass_credits['desc']); ?></p>
<?php endif; ?>
<?php if (empty($card_pass_credits['only_password'])) : ?>
<input type="text" class="uc-card-pass__input" name="aksrt_card_no" data-aksrt-card-no autocomplete="off" placeholder="<?php esc_attr_e('请输入卡号', 'aksrt'); ?>">
<?php endif; ?>
<input type="text" class="uc-card-pass__input" name="aksrt_card_password" data-aksrt-card-password autocomplete="off" placeholder="<?php esc_attr_e('请输入卡密', 'aksrt'); ?>">
<button type="button" class="uc-card-pass__btn" data-aksrt-card-redeem data-type="credits">
<?php esc_html_e('兑换积分', 'aksrt'); ?>
</button>
<p class="uc-card-pass__tip" data-aksrt-card-tip></p>
</div>
<?php endif; ?>