Provize se nevytváří po WC objednávce

Symptomy

  • WC objednávka byla dokončena, ale {prefix}affinite_commissions tabulka nemá záznam.
  • Affiliate vidí klik v dashboardu, ale žádnou provizi.
  • Admin panel orderu nezobrazuje Affiliate Information.

1. Check order meta

wp wc shop_order get 123 --user=1 --field=meta_data

Hledejte:

  • _affinite_affiliate_id — pokud chybí, cookie nebyla nastavena při checkout (klik neproběhl nebo expiroval).
  • _affinite_click_id — sekundární vazba.

2. Check order status

Provize se generují při:

  • woocommerce_order_status_completed (primární)
  • woocommerce_order_status_processing (alternativní pro digitální produkty)

Pokud order zůstal v statusu pending payment, on-hold nebo cancelled, provize se NEVYTVOŘÍ. Ručně přechod přes admin/CLI:

wp wc shop_order update 123 --status=completed --user=1

3. Hook ordering konflikt

Jiný plugin (custom WC modifikace) může deregistrovat plugin hooks. Check:

// V mu-plugin
add_action('woocommerce_order_status_completed', function($order_id) {
    error_log('Order completed hook fired: ' . $order_id);
}, 1);

Pokud váš log fires ale plugin handler ne, někdo manipuloval s priority/removal.

4. Affiliate status

Pokud byl affiliate v mezičase suspended/rejected, plugin nevytvoří provizi i přes existující meta. Verifikujte v adminu.

5. Cookie expiration

Pokud uplynulo více než cookie duration (default 30 dní) mezi klikem a objednávkou, cookie už neexistuje a klik se na objednávku nepřiřadí.

6. Manual recalculation

Pokud znáte affiliate_id, můžete vytvořit provizi ručně přes CommissionManager:

wp eval '
$cm = new AffiniteWPAffiliateCommissionCommissionManager();
$cm->create_commission([
    "affiliate_id" => 45,
    "type" => "sale",
    "amount" => 150,
    "currency" => "CZK",
    "description" => "Manual recovery for order #123",
    "reference_id" => "order_123",
    "status" => "pending",
]);'