fix(user): close level parity gaps
This commit is contained in:
1 parent
a57b44bd61
commit
d4946ee554
8 files changed
+136
-38
No files matched your search
@@ -367,6 +367,8 @@ trait Part3 {
|
||||
private function process_gifts(string $order_number, array $order, array $items): void {
|
||||
$user_id = (int) ($order['user_id'] ?? 0);
|
||||
if ($user_id <= 0) return;
|
||||
$claim_key = '_aksrt_shop_gifts_' . sanitize_key($order_number);
|
||||
if (!add_user_meta($user_id, $claim_key, 'processing', true)) return;
|
||||
|
||||
foreach ($items as $item) {
|
||||
$gifts = $item['gift_data'] ?? [];
|
||||
@@ -378,6 +380,8 @@ trait Part3 {
|
||||
|
||||
if ($gift_type === 'credits' && class_exists('\AKSRT\Credits\Credits') && (int) $gift_value > 0) {
|
||||
\AKSRT\Credits\Credits::add((int) $gift_value, $user_id, 'shop_gift', sprintf(__('订单 %s 赠品', 'aksrt'), $order_number));
|
||||
} elseif (in_array($gift_type, ['level_integral', 'experience'], true) && class_exists('\AKSRT\User\Level') && (int) $gift_value > 0) {
|
||||
\AKSRT\User\Level::add($user_id, 'shop_gift', (int) $gift_value, true);
|
||||
} elseif ($gift_type === 'vip_days' && (int) $gift_value > 0) {
|
||||
$current = (int) get_user_meta($user_id, 'aksrt_vip_expires', true);
|
||||
$base = max($current, time());
|
||||
@@ -390,5 +394,6 @@ trait Part3 {
|
||||
}
|
||||
}
|
||||
}
|
||||
update_user_meta($user_id, $claim_key, '1');
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user