feat: upgrade widgets and affiliate commission flow
This commit is contained in:
@@ -92,32 +92,8 @@ trait PayOrders {
|
||||
aksrt_burn_order_coupon($order_number, $meta, $buyer_id);
|
||||
}
|
||||
|
||||
// Affiliate commission (does not reduce buyer pay).
|
||||
$referrer_id = (int) ($meta['referrer_id'] ?? 0);
|
||||
$rebate_price = round((float) ($meta['rebate_price'] ?? 0), 2);
|
||||
$pay_amount = round((float) ($order['amount'] ?? $meta['payable'] ?? 0), 2);
|
||||
if ($referrer_id <= 0 || $rebate_price <= 0 || $pay_amount <= 0) {
|
||||
return;
|
||||
}
|
||||
if (!class_exists('\AKSRT\Payment\Rebate')) {
|
||||
return;
|
||||
}
|
||||
if ($this->rebate_log_exists($order_number, $referrer_id)) {
|
||||
return;
|
||||
}
|
||||
\AKSRT\Payment\Rebate::get_instance()->create([
|
||||
'user_id' => $referrer_id,
|
||||
'order_number' => $order_number,
|
||||
'source_user_id' => $buyer_id,
|
||||
'amount' => $rebate_price,
|
||||
'type' => \AKSRT\Payment\Rebate::TYPE_ORDER,
|
||||
'note' => sprintf(
|
||||
/* translators: 1: order number 2: post id */
|
||||
__('内容推广返佣 订单 %1$s 内容 #%2$d', 'aksrt'),
|
||||
$order_number,
|
||||
(int) ($order['product_id'] ?? $meta['post_id'] ?? 0)
|
||||
),
|
||||
]);
|
||||
// Affiliate commission is recorded exactly once by CommissionLedger on
|
||||
// the canonical aksrt_order_paid event. No order-side legacy writes.
|
||||
}
|
||||
|
||||
|
||||
@@ -140,22 +116,6 @@ trait PayOrders {
|
||||
|
||||
|
||||
|
||||
private function rebate_log_exists(string $order_number, int $referrer_id): bool {
|
||||
global $wpdb;
|
||||
$table = \AKSRT\Core\DBMigrator::table('rebate_log');
|
||||
if ($table === '' || $order_number === '') {
|
||||
return false;
|
||||
}
|
||||
$found = $wpdb->get_var($wpdb->prepare(
|
||||
"SELECT id FROM {$table} WHERE order_number = %s AND user_id = %d LIMIT 1",
|
||||
$order_number,
|
||||
$referrer_id
|
||||
));
|
||||
return !empty($found);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Points one-shot purchase → permanent resource order.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user