AND feature flags with user_caps balance_transfer / points_transfer / balance_withdraw on REST and user-center buttons.
133 lines
7.3 KiB
PHP
133 lines
7.3 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_Charge_Card')) {
|
|
$opts = AKSRT_Charge_Card::get_instance()->get_public_options();
|
|
$card_pass_credits = is_array($opts['credits'] ?? null) ? $opts['credits'] : $card_pass_credits;
|
|
}
|
|
$all_settings = class_exists('AKSRT_Settings') ? AKSRT_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_buy_on = class_exists('AKSRT_Balance_Service') && AKSRT_Balance_Service::get_instance()->points_buy_enabled();
|
|
$points_buy_view = $points_buy_on ? AKSRT_Balance_Service::get_instance()->get_points_buy_view((int) ($user_id ?? 0)) : [];
|
|
$currency = (string) ($currency_name ?? __('积分', 'aksrt'));
|
|
?>
|
|
<div class="uc-asset-card uc-asset-card--points zib-widget">
|
|
<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"><?php esc_html_e('转账', 'aksrt'); ?></button>
|
|
<?php endif; ?>
|
|
<?php if ($points_buy_on) : ?>
|
|
<button type="button" class="but c-green" data-aksrt-points-buy-open><?php esc_html_e('购买积分', 'aksrt'); ?></button>
|
|
<?php endif; ?>
|
|
</div>
|
|
</div>
|
|
<p class="uc-balance-card__tip muted-2-color em09" data-signin-tip></p>
|
|
<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_buy_on) :
|
|
$pb_packages = is_array($points_buy_view['packages'] ?? null) ? $points_buy_view['packages'] : [];
|
|
$pb_methods = is_array($points_buy_view['payment_methods'] ?? null) ? $points_buy_view['payment_methods'] : [];
|
|
$pb_rate = (int) ($points_buy_view['rate'] ?? 100);
|
|
$pb_custom = !empty($points_buy_view['custom_s']);
|
|
$pb_limit = (int) ($points_buy_view['custom_limit'] ?? 99999);
|
|
?>
|
|
<div class="uc-modal" id="aksrt-points-buy-modal" hidden data-aksrt-points-buy-modal>
|
|
<div class="uc-modal__overlay" data-aksrt-points-buy-close></div>
|
|
<div class="uc-modal__dialog" role="dialog" aria-modal="true">
|
|
<button type="button" class="uc-modal__close" data-aksrt-points-buy-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_buy_view['desc'])) : ?>
|
|
<div class="uc-modal__desc muted-box em09"><?php echo esc_html((string) $points_buy_view['desc']); ?></div>
|
|
<?php endif; ?>
|
|
<form data-aksrt-points-buy-form>
|
|
<?php if ($pb_packages) : ?>
|
|
<div class="muted-color mb6"><?php esc_html_e('请选择积分套餐', 'aksrt'); ?></div>
|
|
<div class="uc-charge-packages">
|
|
<?php foreach ($pb_packages as $idx => $pkg) : ?>
|
|
<label class="uc-charge-package<?php echo $idx === 0 ? ' is-active' : ''; ?>">
|
|
<input type="radio" name="points_package" value="<?php echo esc_attr((string) $pkg['key']); ?>" <?php checked($idx === 0); ?>>
|
|
<div class="uc-charge-package__credit"><?php echo esc_html((string) (int) $pkg['points']); ?> <span class="px12"><?php echo esc_html($currency); ?></span></div>
|
|
<div class="uc-charge-package__pay c-red"><span class="px12">¥</span><?php echo esc_html((string) $pkg['pay_price']); ?></div>
|
|
</label>
|
|
<?php endforeach; ?>
|
|
</div>
|
|
<?php endif; ?>
|
|
<?php if ($pb_custom) : ?>
|
|
<div class="muted-color mt16 mb6"><?php echo $pb_packages ? esc_html__('自定义积分数量', 'aksrt') : esc_html__('请输入购买积分数量', 'aksrt'); ?></div>
|
|
<input type="number" class="uc-card-pass__input" name="custom_points" min="<?php echo esc_attr((string) $pb_rate); ?>" max="<?php echo esc_attr((string) $pb_limit); ?>" step="1" data-aksrt-points-buy-custom>
|
|
<p class="muted-2-color em09 mt6"><?php printf(esc_html__('1 元 = %d 积分', 'aksrt'), $pb_rate); ?></p>
|
|
<?php if (!$pb_packages) : ?>
|
|
<input type="hidden" name="points_package" value="custom">
|
|
<?php endif; ?>
|
|
<?php endif; ?>
|
|
<?php if ($pb_methods) : ?>
|
|
<div class="muted-color mt16 mb6"><?php esc_html_e('支付方式', 'aksrt'); ?></div>
|
|
<div class="uc-charge-methods">
|
|
<?php foreach ($pb_methods as $mi => $m) : ?>
|
|
<label class="uc-charge-method">
|
|
<input type="radio" name="points_pay_method" value="<?php echo esc_attr((string) ($m['id'] ?? '')); ?>" <?php checked($mi === 0); ?>>
|
|
<span><?php echo esc_html((string) ($m['name'] ?? $m['id'] ?? '')); ?></span>
|
|
</label>
|
|
<?php endforeach; ?>
|
|
</div>
|
|
<?php endif; ?>
|
|
<p class="uc-modal__tip" data-aksrt-points-buy-tip></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; ?>
|