65 lines
2.7 KiB
PHP
65 lines
2.7 KiB
PHP
<?php
|
|
/**
|
|
* User center balance transaction list.
|
|
*
|
|
* Expects extracted $context vars.
|
|
*
|
|
* @package AKSRT
|
|
*/
|
|
|
|
defined('ABSPATH') || exit;
|
|
|
|
$asset_request = is_array($asset_request ?? null) ? $asset_request : [];
|
|
$wallet_page = ($asset_request['asset'] ?? '') === 'balance'
|
|
? max(1, (int) ($asset_request['page'] ?? 1))
|
|
: 1;
|
|
$history = get_user_meta((int) ($user_id ?? 0), 'balance_record', true);
|
|
$history = is_array($history) ? array_slice($history, 0, 50) : [];
|
|
$items = array_slice($history, ($wallet_page - 1) * 10, 10);
|
|
?>
|
|
<div class="uc-transactions uc-transactions--wallet">
|
|
<div class="uc-transactions__header">
|
|
<h3 class="uc-transactions__title">
|
|
<i class="fa fas fa-list-ul" aria-hidden="true"></i>
|
|
<?php esc_html_e('余额记录', 'aksrt'); ?>
|
|
</h3>
|
|
</div>
|
|
<?php if ($items) : ?>
|
|
<div class="uc-transactions__list">
|
|
<?php foreach ($items as $row) :
|
|
$raw_delta = (string) ($row['value'] ?? '0');
|
|
try { $delta_minor = \AKSRT\Ledger\AssetAmount::balance($raw_delta)->minor(); } catch (\InvalidArgumentException $e) { $delta_minor = 0; }
|
|
$delta = $delta_minor;
|
|
$delta_class = $delta >= 0 ? 'is-positive' : 'is-negative';
|
|
$delta_txt = ($delta > 0 ? '+' : ($delta < 0 ? '-' : '')) . \AKSRT\Ledger\AssetAmount::from_minor(\AKSRT\Ledger\AssetType::BALANCE, abs($delta))->formatted();
|
|
?>
|
|
<div class="uc-transactions__item">
|
|
<div class="uc-transactions__icon <?php echo esc_attr($delta_class); ?>">
|
|
<i class="fa fas fa-<?php echo $delta >= 0 ? 'arrow-up' : 'arrow-down'; ?>" aria-hidden="true"></i>
|
|
</div>
|
|
<div class="uc-transactions__info">
|
|
<div class="uc-transactions__reason">
|
|
<?php echo esc_html((string) ($row['desc'] ?? '') !== '' ? (string) $row['desc'] : aksrt_asset_reason_label((string) ($row['type'] ?? ''))); ?>
|
|
</div>
|
|
<div class="uc-transactions__time"><?php echo esc_html((string) ($row['time'] ?? '')); ?></div>
|
|
<?php if (!empty($row['order_num'])) : ?><div class="muted-2-color em09"><?php echo esc_html__('订单号:', 'aksrt') . esc_html((string) $row['order_num']); ?></div><?php endif; ?>
|
|
</div>
|
|
<div class="uc-transactions__amount">
|
|
<span class="uc-transactions__delta <?php echo esc_attr($delta_class); ?>"><?php echo esc_html($delta_txt); ?></span>
|
|
</div>
|
|
</div>
|
|
<?php endforeach; ?>
|
|
</div>
|
|
<?php
|
|
$total_pages = (int) ceil(count($history) / 10);
|
|
if ($total_pages > 1 && function_exists('aksrt_render_asset_pagination')) {
|
|
aksrt_render_asset_pagination($total_pages, $wallet_page, 'balance');
|
|
}
|
|
?>
|
|
<?php else : ?>
|
|
<div class="uc-transactions__empty">
|
|
<p><?php esc_html_e('还没有任何余额流水', 'aksrt'); ?></p>
|
|
</div>
|
|
<?php endif; ?>
|
|
</div>
|