WooCommerce · Personalizare produse
WooCommerce: configurarea prețului după dimensiunile introduse
Oglindă, geam, banner sau mochetă la dimensiunea clientului. Prețul vine din lungime, lățime și o regulă de preț, cu limite clare.
- Lungime și lățime
- Limite minime și maxime
- Formulă pe suprafață
- Validare la adăugare
- Preț afișat înainte de coș
Răspuns în aceeași zi lucrătoare Ofertă fixă Fără parole
Răspuns rapid
Pentru produse la dimensiune cerută colectezi lungimea și lățimea în două câmpuri numerice, le validezi (minim, maxim, unitate), le salvezi în datele articolului din coș și recalculezi prețul în woocommerce_before_calculate_totals. Extensia Product Add-Ons are câmpuri cantitate și preț definit de client, cu limite, dar nu documentează o formulă pe lungime × lățime: pentru asta folosești cod propriu sau o extensie specializată.
Ce ai nevoie
- Preț pe mp sau formulă proprie
- Dimensiuni minime și maxime
- Unitatea (cm sau m)
- Acces la tema copil
Pașii, pe rând
- 1Definește formulaPreț pe mp × suprafață, plus un cost fix, un minim de comandă și rotunjirea (de exemplu la 0,01 mp). Scrie și unitatea cerută (cm sau m).
- 2Stabilește limiteleDimensiuni minime și maxime pe care le poți produce și transporta. Mesajele de eroare trebuie să spună clar ce limite sunt.
- 3Adaugă câmpurileDouă câmpuri numerice pe pagina produsului (cu min, max și step), validate la adăugarea în coș.
- 4Salvează dimensiunile în coșPrin woocommerce_add_cart_item_data păstrezi lungimea și lățimea, iar produsele cu dimensiuni diferite rămân linii separate.
- 5Recalculează prețulÎn woocommerce_before_calculate_totals setezi prețul din suprafața × tarif, pornind mereu de la un tarif de bază, nu de la prețul modificat.
- 6Copiază dimensiunile în comandăCu woocommerce_checkout_create_order_line_item păstrezi lungimea și lățimea în linia comenzii, pentru atelier.
- 7Testează valorile limităMinim, maxim, zecimale, valori goale și negative; verifică coșul, comanda și factura.
Preț după suprafață, cu validare (schelet)
phpadd_filter('woocommerce_add_to_cart_validation', function ($ok, $product_id) {
$l = isset($_POST['lungime']) ? (float) $_POST['lungime'] : 0;
$w = isset($_POST['latime']) ? (float) $_POST['latime'] : 0;
if ($l < 0.3 || $l > 3 || $w < 0.3 || $w > 2) {
wc_add_notice('Dimensiuni acceptate: lungime 0,3–3 m, lățime 0,3–2 m.', 'error');
return false;
}
return $ok;
}, 10, 2);
add_filter('woocommerce_add_cart_item_data', function ($data) {
if (!empty($_POST['lungime']) && !empty($_POST['latime'])) {
$data['lungime'] = (float) $_POST['lungime'];
$data['latime'] = (float) $_POST['latime'];
}
return $data;
});
add_action('woocommerce_before_calculate_totals', function ($cart) {
foreach ($cart->get_cart() as $item) {
if (empty($item['lungime'])) continue;
$tarif_mp = (float) $item['data']->get_regular_price(); // prețul produsului = lei / mp
$item['data']->set_price(round($item['lungime'] * $item['latime'] * $tarif_mp, 2));
}
});Fragmentele de cod sunt scheleturi: le adaptezi la magazinul tău și le testezi întâi pe un mediu de test (staging). Aici prețul produsului reprezintă tariful pe metru pătrat. Intervalele de dimensiuni sunt exemple. Validarea se aplică tuturor produselor: restrânge-o la cele cu dimensiuni.
Fragmentul e o soluție proprie; documentația Product Add-Ons nu descrie formule pe lungime × lățime. Verifică efectul asupra TVA, reducerilor și integrărilor de facturare.
Mai multe detalii
Cauze frecvente și greșeli de evitatDacă pașii de mai sus nu au rezolvat problema
Prețul ignoră dimensiunile
De ce: Datele nu sunt salvate în coș sau cheia diferă.
Ce faci: Verifică woocommerce_add_cart_item_data și numele cheilor.
Valori imposibile ajung în comandă
De ce: Validarea lipsește sau e doar în JavaScript.
Ce faci: Validează și pe server.
Prețul se schimbă între coș și comandă
De ce: Alt plugin modifică prețul.
Ce faci: Fă testul de conflicte.
Întrebări frecvente4 răspunsuri
Pot folosi Product Add-Ons?
Pentru preț definit de client sau cantitate cu limite da; formula lungime × lățime nu e descrisă în documentația lui.
Ce unitate folosesc?
Una singură, clar scrisă pe pagină (cm sau m), și aceeași în cod și în producție.
Cum țin cont de transport?
Greutatea se poate calcula din suprafață; vezi ghidul despre transport în funcție de greutate.
Mă ajutați să-l implementez?
Da, cu teste pe facturare. Cere ofertă fixă.
Subiecte acoperite pe această pagină
- preț după dimensiuni WooCommerce
- calculator preț mp
- produse la dimensiune cerută
- lungime lățime preț
- woocommerce_before_calculate_totals
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: selectarea materialului și finisajului cu cost suplimentar
- WooCommerce: aprobarea machetei de către client înainte de producție
- WooCommerce: vânzarea produselor la metru sau metru pătrat
- WooCommerce: preț după numărul de caractere
- Toate ghidurile
Surse și verificare
Verificat pe 5 noiembrie 2026. Denumirile din setări și pașii pot diferi între versiuni.
