Sari la conținut
WEBLURE

WooCommerce · Coș de cumpărături

WooCommerce: adăugarea automată a unui cadou în coș

„Peste 250 de lei primești un cadou.” Cadoul se adaugă singur în coș la prag și dispare dacă clientul scoate produse; iată cum se construiește sigur.

  • Cadou la prag
  • Preț zero
  • Eliminare sub prag
  • Un singur cadou
  • Mesaj în coș

Răspuns în aceeași zi lucrătoare Ofertă fixă Fără parole

Vrei să ți-o facem noi?

Doar două câmpuri. Răspundem în aceeași zi lucrătoare, cu ofertă fixă.

+ Telefon și detalii (opțional)

Răspuns rapid

Creezi un produs-cadou și, cu hook-ul woocommerce_before_calculate_totals, adaugi automat cadoul când subtotalul fără cadou depășește pragul (marcând articolul cu un indicator), îi setezi prețul la 0 și îl elimini când coșul scade sub prag. Ține cont de stoc, de un singur cadou pe comandă, de mesajul către client și de evitarea buclelor (hook-ul rulează de mai multe ori).

Ce ai nevoie

  • Produsul-cadou (cu stoc)
  • Pragul și regula (o singură dată, doar un cadou)
  • Acces la tema copil
  • Un mediu de test

Pașii, pe rând

  1. 1Definește regulaPragul, ce cadou, o singură dată pe comandă, dacă se aplică și cu cupon și ce se întâmplă dacă cadoul e epuizat.
  2. 2Creează produsul-cadouProdus cu stoc propriu, ascuns din catalog (vizibilitate „ascuns”), ca să nu se cumpere separat.
  3. 3Adaugă cadoul când se atinge pragulÎn woocommerce_before_calculate_totals calculezi subtotalul fără cadou și, dacă depășește pragul și cadoul nu e în coș, îl adaugi cu un indicator în datele articolului.
  4. 4Setează prețul la zeroPentru articolul marcat ca cadou, setezi prețul 0 în același hook.
  5. 5Elimină cadoul sub pragDacă subtotalul fără cadou scade sub prag, scoți articolul-cadou din coș.
  6. 6Evită bucleleHook-ul poate rula de mai multe ori; folosește verificări (indicator pe articol, did_action) ca să nu adaugi același cadou de mai multe ori.
  7. 7Informează clientulUn mesaj în coș: „Ai primit un cadou!” sau „Mai ai nevoie de 40 lei pentru cadou.”
  8. 8TesteazăCoș sub prag, la prag, peste prag, cu eliminare de produse și cu cadou epuizat. Verifică totalurile și stocul.

Cadou automat peste prag (schelet)

php
add_action('woocommerce_before_calculate_totals', function ($cart) {
    if (is_admin() && !defined('DOING_AJAX')) {
        return;
    }
    if (did_action('woocommerce_before_calculate_totals') >= 2) {
        return;
    }
    $gift_id = 123;   // ID-ul produsului-cadou
    $prag    = 250;   // lei
    $sub = 0.0;
    $gift_key = null;
    foreach ($cart->get_cart() as $key => $item) {
        if (!empty($item['wl_gift'])) {
            $gift_key = $key;
            continue;
        }
        $sub += (float) $item['line_subtotal'];
    }
    if ($sub >= $prag && !$gift_key) {
        $cart->add_to_cart($gift_id, 1, 0, [], ['wl_gift' => true]);
    } elseif ($sub < $prag && $gift_key) {
        $cart->remove_cart_item($gift_key);
    }
    foreach ($cart->get_cart() as $item) {
        if (!empty($item['wl_gift'])) {
            $item['data']->set_price(0);
        }
    }
});

Fragmentele de cod sunt scheleturi: le adaptezi la magazinul tău și le testezi întâi pe un mediu de test (staging). ID-ul și pragul sunt exemple. Verifică stocul cadoului, comportamentul cu cupoane și cu checkout-ul cu blocuri înainte de lansare.

Nu vrei să te complici sau ai rămas blocat? Scrie-ne și o facem noi.

Scrie-ne pe WhatsAppCere ofertă

Mai multe detalii

Cauze frecvente și greșeli de evitatDacă pașii de mai sus nu au rezolvat problema
1

Cadoul se adaugă de mai multe ori

De ce: Hook-ul rulează repetat fără verificare.

Ce faci: Marchează articolul-cadou și verifică existența lui înainte de adăugare.

2

Cadoul rămâne după ce scazi sub prag

De ce: Logica de eliminare lipsește sau folosește un subtotal care include cadoul.

Ce faci: Calculează subtotalul fără articolul-cadou.

3

Cadoul epuizat blochează comanda

De ce: Produsul nu mai are stoc.

Ce faci: Verifică stocul înainte de adăugare și ascunde mesajul când e epuizat.

Întrebări frecvente4 răspunsuri
Cadoul poate fi cumpărat separat?

Nu, dacă produsul e ascuns din catalog și prețul la zero se aplică doar articolului marcat din coș.

Funcționează cu checkout-ul cu blocuri?

Logica de coș funcționează în ambele, dar mesajele și testele trebuie verificate pe checkout-ul tău.

Pot oferi cadou doar la prima comandă?

Da, adăugând o verificare a istoricului comenzilor clientului.

Vă ocupați de implementare?

Da, cu regulile tale de campanie. Cere ofertă fixă.