Sari la conținut
WEBLURE

WooCommerce · Coș de cumpărături

WooCommerce: crearea unui link care adaugă un set de produse în coș

Vrei un link de campanie care pune în coș un kit de produse. WooCommerce adaugă un singur produs prin URL; pentru un set faci un endpoint propriu.

  • Link de campanie
  • Set de produse
  • Redirect la coș sau checkout
  • Validare și stoc
  • Mesaj clar

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

Pentru un singur produs, WooCommerce acceptă un link cu parametrul add-to-cart. Pentru un set de produse faci un endpoint propriu: un parametru (de exemplu ?kit=starter) pe care îl citești în hook-ul template_redirect, adaugi fiecare produs cu WC()->cart->add_to_cart(), tratezi stocul și erorile și redirecționezi clientul la coș sau la checkout. Documentația nu descrie nativ adăugarea mai multor produse dintr-un link, de aceea trebuie să-l construiești tu.

Ce ai nevoie

  • Lista produselor și cantităților din set
  • Acces la tema copil
  • Pagina de destinație (coș sau checkout)
  • Un mediu de test

Pașii, pe rând

  1. 1Definește setulCe produse și ce cantități intră în set, cu variantele fixate unde e cazul. Ține evidența în cod, într-un tabel simplu.
  2. 2Alege parametrul linkuluiDe exemplu ?kit=starter. Un nume clar și validare strictă (doar valorile din tabel).
  3. 3Adaugă produsele în coșÎn hook-ul template_redirect citești parametrul, parcurgi setul și apelezi WC()->cart->add_to_cart() pentru fiecare produs. Verifică stocul și rezultatul fiecărui apel.
  4. 4Evită adăugările dubleDacă clientul reîncarcă linkul, nu vrei să dublezi setul. Folosește un indicator în sesiune sau golește produsele din set înainte de adăugare.
  5. 5RedirecționeazăDupă adăugare, trimite clientul la coș sau la checkout și afișează un mesaj. Folosește wp_safe_redirect().
  6. 6Tratează erorileDacă un produs e epuizat sau indisponibil, adaugă-l pe celelalte și spune clientului ce lipsește, sau oprește tot setul, după regula ta.
  7. 7TesteazăLink valid, link invalid, reîncărcare, produse epuizate, client autentificat și vizitator. Verifică totalurile.

Link care adaugă un kit în coș (schelet)

php
add_action('template_redirect', function () {
    if (empty($_GET['kit'])) {
        return;
    }
    $kituri = [
        'starter' => [101 => 1, 102 => 2], // id produs => cantitate
    ];
    $kit = sanitize_key(wp_unslash($_GET['kit']));
    if (!isset($kituri[$kit]) || !function_exists('WC') || !WC()->cart) {
        return;
    }
    foreach ($kituri[$kit] as $product_id => $qty) {
        $ok = WC()->cart->add_to_cart($product_id, $qty);
        if (!$ok) {
            wc_add_notice('Un produs din set nu a putut fi adăugat.', 'error');
        }
    }
    wp_safe_redirect(wc_get_cart_url());
    exit;
});

Fragmentele de cod sunt scheleturi: le adaptezi la magazinul tău și le testezi întâi pe un mediu de test (staging). Exemplul nu previne dubla adăugare la reîncărcare; adaugă un indicator în sesiune dacă ai nevoie. Pentru produse cu variante, treci și ID-ul variantei.

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

Produsele se dublează la reîncărcare

De ce: Linkul se execută din nou.

Ce faci: Marchează în sesiune setul adăugat sau curăță înainte de adăugare.

2

Un produs din set nu se adaugă

De ce: Stoc epuizat, preț lipsă sau variantă neselectată.

Ce faci: Verifică produsele din set și tratează erorile.

3

Linkul nu face nimic

De ce: Hook-ul nu rulează sau parametrul nu e în tabel.

Ce faci: Verifică numele parametrului și că funcția e încărcată.

Întrebări frecvente4 răspunsuri
WooCommerce adaugă mai multe produse dintr-un link?

Documentația consultată nu descrie asta nativ; se face cu un endpoint propriu, ca în exemplu.

Pot trimite clientul direct la checkout?

Da, redirecționând la wc_get_checkout_url() în loc de coș.

Funcționează în emailuri și pe WhatsApp?

Da, linkul se poate folosi oriunde; testează-l pe mobil.

Vă ocupați de implementare?

Da, cu seturile tale și cu teste. Cere ofertă fixă.