Sari la conținut
WEBLURE

WooCommerce · Personalizare produse

WooCommerce: colectarea numelor pentru mai multe produse personalizate

Cinci cupe, cinci nume diferite. Un singur câmp nu ajunge: fiecare bucată are nevoie de datele ei, iar comanda trebuie să le arate pe toate.

  • Un set de date pe bucată
  • Linii separate în coș
  • Câmpuri multiple după cantitate
  • Validare
  • Listă clară pentru atelier

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

Un câmp text pe produs descrie o singură personalizare pe linie: la cantitatea 5 ai același text pentru toate bucățile. Soluțiile: clientul adaugă fiecare bucată separat (linii separate în coș, cu cantitate 1), sau afișezi pe pagina produsului câte un câmp pentru fiecare unitate cerută și păstrezi lista în datele articolului. WooCommerce face articolele din coș distincte când datele atașate diferă, iar linia comenzii păstrează lista.

Ce ai nevoie

  • Cantitatea maximă pe comandă
  • Ce se colectează pe bucată (nume, mărime, număr)
  • Acces la tema copil
  • Un mediu de test

Pașii, pe rând

  1. 1Alege abordareaSimplu: o bucată pe linie (clientul adaugă de mai multe ori). Comod: pe pagina produsului apar atâtea câmpuri câte bucăți a ales, într-o listă.
  2. 2Definește ce colectezi pe bucatăNume, mărime, număr; fiecare în câmpuri separate, cu aceleași reguli de lungime și caractere.
  3. 3Limitează cantitateaSetează un maxim rezonabil (de exemplu 10 bucăți) ca formularul să nu devină nelucrabil; vezi ghidul despre limitarea cantității.
  4. 4Validează fiecare câmpLa adăugarea în coș, toate câmpurile trebuie completate, fără duplicate nedorite și în limitele de lungime.
  5. 5Păstrează lista în coșSalvează lista în datele articolului (woocommerce_add_cart_item_data). Datele diferite fac articolul distinct în coș.
  6. 6Copiază lista în comandăCu woocommerce_checkout_create_order_line_item pui lista în linia comenzii, ca atelierul să vadă numele pe bucată.
  7. 7TesteazăCantități de 1, 5 și maximul; câmpuri lipsă; aceeași comandă repetată; verifică coșul, comanda și emailurile.

Lista de nume pe bucată păstrată în comandă (schelet)

php
add_filter('woocommerce_add_cart_item_data', function ($data) {
    if (!empty($_POST['nume_bucata']) && is_array($_POST['nume_bucata'])) {
        $data['nume_bucata'] = array_map('sanitize_text_field', wp_unslash($_POST['nume_bucata']));
    }
    return $data;
});

add_action('woocommerce_checkout_create_order_line_item', function ($item, $key, $values) {
    if (!empty($values['nume_bucata'])) {
        foreach (array_values($values['nume_bucata']) as $i => $nume) {
            $item->add_meta_data('Bucata ' . ($i + 1), $nume);
        }
    }
}, 10, 3);

Fragmentele de cod sunt scheleturi: le adaptezi la magazinul tău și le testezi întâi pe un mediu de test (staging). Câmpurile nume_bucata[] se afișează pe pagina produsului (cu JavaScript, în funcție de cantitate) și se validează server-side cu woocommerce_add_to_cart_validation: numărul de nume trebuie să fie egal cu cantitatea.

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

Toate bucățile primesc același text

De ce: Un singur câmp pe linie.

Ce faci: Colectează un set de date pe bucată sau separă liniile.

2

Lista nu ajunge în comandă

De ce: Datele nu sunt copiate în linia comenzii.

Ce faci: Adaugă cârligul de copiere.

3

Numărul de nume diferă de cantitate

De ce: Cantitatea se schimbă în coș după completare.

Ce faci: Validează și la actualizarea cantității sau blochează schimbarea cantității.

Întrebări frecvente4 răspunsuri
Poate Product Add-Ons colecta un nume pe bucată?

Documentația descrie câmpuri pe linie, nu un set de date pentru fiecare unitate din cantitate; pentru asta alegi liniile separate sau cod propriu.

Ce limită de bucăți e rezonabilă?

Depinde de produs; un maxim mic ține formularul utilizabil pe telefon.

Cum văd atelierul lista?

Din linia comenzii; vezi și ghidul despre fișa de producție.

Mă ajutați cu formularul pe bucată?

Da. Cere ofertă fixă.