feat(user-center): add cash wallet balance separate from credits
Introduce AKSRT_Balance (user_meta aksrt_balance + balance_log) for Zibll-like pay_balance wallet. User center assets panel shows wallet and points; balance gateway/card-pass/refunds credit cash when enabled.
This commit is contained in:
1 parent
f043d2c1ab
commit
8e0f9d989d
16 files changed
+637
-74
No files matched your search
@@ -514,15 +514,25 @@ class AKSRT_After_Sale {
|
||||
$payment_method = (string) ($order['payment_method'] ?? 'balance');
|
||||
$order_number = (string) ($order['order_number'] ?? '');
|
||||
|
||||
// Balance refund: credit back via AKSRT_Credits
|
||||
if ($payment_method === 'balance' && class_exists('AKSRT_Credits')) {
|
||||
AKSRT_Credits::add(
|
||||
$user_id,
|
||||
(int) round($refund_amount),
|
||||
sprintf(__('售后退款:订单 %s', 'aksrt'), $order_number),
|
||||
['order_number' => $order_number, 'type' => 'refund'],
|
||||
sprintf(__('售后退款金额 ¥%s', 'aksrt'), number_format($refund_amount, 2))
|
||||
);
|
||||
// Balance refund: prefer cash wallet, fall back to points.
|
||||
if ($payment_method === 'balance') {
|
||||
if (class_exists('AKSRT_Balance') && AKSRT_Balance::enabled()) {
|
||||
AKSRT_Balance::add(
|
||||
$user_id,
|
||||
(float) $refund_amount,
|
||||
'order_refund',
|
||||
['type' => 'order', 'order' => $order_number],
|
||||
sprintf(__('售后退款:订单 %s', 'aksrt'), $order_number)
|
||||
);
|
||||
} elseif (class_exists('AKSRT_Credits')) {
|
||||
AKSRT_Credits::add(
|
||||
$user_id,
|
||||
(int) round($refund_amount),
|
||||
'order_refund',
|
||||
['order_number' => $order_number, 'type' => 'refund'],
|
||||
sprintf(__('售后退款金额 ¥%s', 'aksrt'), number_format($refund_amount, 2))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// Deduct sales_volume for refunded items
|
||||
|
||||
Reference in new issue
Block a user