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
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
- 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ă.
- 2Definește ce colectezi pe bucatăNume, mărime, număr; fiecare în câmpuri separate, cu aceleași reguli de lungime și caractere.
- 3Limitează cantitateaSetează un maxim rezonabil (de exemplu 10 bucăți) ca formularul să nu devină nelucrabil; vezi ghidul despre limitarea cantității.
- 4Validează fiecare câmpLa adăugarea în coș, toate câmpurile trebuie completate, fără duplicate nedorite și în limitele de lungime.
- 5Păstrează lista în coșSalvează lista în datele articolului (woocommerce_add_cart_item_data). Datele diferite fac articolul distinct în coș.
- 6Copiază lista în comandăCu woocommerce_checkout_create_order_line_item pui lista în linia comenzii, ca atelierul să vadă numele pe bucată.
- 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)
phpadd_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.
Mai multe detalii
Cauze frecvente și greșeli de evitatDacă pașii de mai sus nu au rezolvat problema
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.
Lista nu ajunge în comandă
De ce: Datele nu sunt copiate în linia comenzii.
Ce faci: Adaugă cârligul de copiere.
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ă.
Subiecte acoperite pe această pagină
- nume diferite pe mai multe produse
- personalizare pe bucată WooCommerce
- tricouri cu nume WooCommerce
- comenzi de grup personalizate
- date pe unitate comandă
Ghiduri apropiate
- WooCommerce: adăugarea textului de gravat în pagina produsului
- WooCommerce: încărcarea fotografiei pentru un produs personalizat
- WooCommerce: previzualizarea personalizării înainte de comandă
- WooCommerce: calcularea prețului după numărul de caractere
- WooCommerce: configurarea prețului după dimensiunile introduse
- WooCommerce: selectarea materialului și finisajului cu cost suplimentar
- WooCommerce: limitarea cantității cumpărate
- WooCommerce: fișa de producție din comandă
- Toate ghidurile
Surse și verificare
- Codul sursă WooCommerce: coșul (class-wc-cart.php)
- Codul sursă WooCommerce: finalizarea comenzii (class-wc-checkout.php)
- Product Add-Ons (documentație WooCommerce)
Verificat pe 5 noiembrie 2026. Denumirile din setări și pașii pot diferi între versiuni.
