WooCommerce · Reguli de livrare
WooCommerce: restricționarea livrării în anumite localități
Nu livrezi peste tot sau livrezi doar local. Vezi ce poate face WooCommerce singur (județe, coduri poștale) și ce ai nevoie de cod pentru (localități), cu mesaj clar pentru client.
- Zone pe județ și cod poștal
- Localități excluse
- Mesaj clar la checkout
- Diacritice și variante de scriere
- Test cu adrese reale
Răspuns în aceeași zi lucrătoare Ofertă fixă Fără parole
Răspuns rapid
Zonele de livrare WooCommerce pot limita livrarea după țară, județ și cod poștal (cu wildcard-uri și intervale), dar nu după numele localității. Pentru localități, ai două căi: transformi localitățile în intervale de coduri poștale sau folosești cod care elimină metodele de livrare și afișează un mesaj la checkout când localitatea e exclusă. Compară numele fără diacritice și cu litere mici.
Ce ai nevoie
- Lista localităților sau codurilor poștale permise/excluse
- Un mesaj pentru client
- Acces de administrator și la tema copil
- Un mediu de test
Pașii, pe rând
- 1Începe cu zonele de livrareWooCommerce → Setări → Livrare → Zone de livrare. O zonă poate conține țări, județe și coduri poștale. Clienții din afara oricărei zone nu primesc nicio metodă de livrare.
- 2Folosește coduri poștale pentru precizieÎn zonă poți adăuga coduri poștale individuale, cu wildcard (cu asterisc) sau intervale. Dacă localitățile tale au coduri poștale clare, e varianta cea mai curată și nu cere cod.
- 3Ordonează zoneleZonele se verifică de sus în jos și prima care se potrivește câștigă. Pune zona restrictivă înaintea celei largi.
- 4Pentru localități: elimină metodele prin codFragmentul de mai jos scoate metodele de livrare când localitatea din adresa de livrare e într-o listă de excluse, normalizată fără diacritice.
- 5Afișează un mesaj înainte de plasarea comenziiFără mesaj, clientul vede doar că nu există metode de livrare. Cu validarea de la checkout, afli exact de ce și poți sugera o alternativă (ridicare personală, alt curier).
- 6Tratează variantele de scriere„București”, „Bucuresti”, „BUCUREȘTI”, „Sector 3”. Compară după normalizare (litere mici, fără diacritice) și, unde se poate, folosește un selector de localitate în checkout.
- 7TesteazăCu adrese din zona permisă, din zona exclusă și cu variante de scriere. Verifică atât coșul, cât și checkout-ul.
Scoate metodele de livrare pentru localități excluse
phpfunction wl_norm($s) {
$s = remove_accents($s);
return strtolower(trim($s));
}
add_filter('woocommerce_package_rates', function ($rates, $package) {
$excluse = ['exemplu localitate', 'alta localitate']; // fără diacritice, litere mici
$oras = wl_norm($package['destination']['city'] ?? '');
if ($oras && in_array($oras, $excluse, true)) {
return []; // nicio metodă de livrare
}
return $rates;
}, 100, 2);
add_action('woocommerce_after_checkout_validation', function ($data, $errors) {
$excluse = ['exemplu localitate', 'alta localitate'];
$oras = wl_norm($data['shipping_city'] ?? ($data['billing_city'] ?? ''));
if ($oras && in_array($oras, $excluse, true)) {
$errors->add('livrare_localitate', 'Din păcate nu livrăm în această localitate. Poți alege ridicarea personală sau ne poți scrie pentru alte variante.');
}
}, 10, 2);Fragmentele de cod sunt scheleturi: le adaptezi la magazinul tău și le testezi întâi pe un mediu de test (staging). Dacă folosești „Livrează la altă adresă”, orașul de livrare e în câmpul shipping_city; fragmentul îl folosește când există.
Mai multe detalii
Cauze frecvente și greșeli de evitatDacă pașii de mai sus nu au rezolvat problema
Clientul scrie localitatea în alt fel
De ce: Diacriticele, prescurtările și literele mari dau variante care nu se potrivesc cu lista.
Ce faci: Normalizează ambele părți și, de preferat, folosește selectoare de județ și localitate.
O zonă largă prinde adresa înaintea celei restrictive
De ce: Zonele se evaluează în ordine.
Ce faci: Reordonează zonele, cu cea mai restrictivă prima.
Mesajul nu apare
De ce: Validarea rulează pe un câmp care nu există (livrare la altă adresă nebifată).
Ce faci: Citește orașul de livrare când există, altfel pe cel de facturare, ca în fragment.
Întrebări frecvente4 răspunsuri
Pot limita livrarea după oraș direct din zone?
Nu. Zonele permit țară, județ și cod poștal (cu wildcard și intervale), nu numele localității. Pentru localități folosești coduri poștale sau cod personalizat.
Ce văd clienții din afara zonelor?
Niciun tarif de livrare. De aceea merită un mesaj explicit sau o metodă alternativă.
Pot permite doar livrarea locală?
Da: o zonă cu codurile poștale locale și, eventual, ridicare personală pentru restul.
Îl implementați pentru mine?
Da. Ne trimiți lista de localități sau coduri și îți răspundem cu o ofertă fixă.
Subiecte acoperite pe această pagină
- restricționare livrare localități WooCommerce
- livrare doar în anumite județe
- zone de livrare cod poștal WooCommerce
- nu livrăm în această localitate
- blocare livrare oraș
Ghiduri apropiate
- WooCommerce: configurarea costului de transport în funcție de greutate
- WooCommerce: configurarea transportului gratuit peste un prag valoric
- WooCommerce: configurarea tarifelor pentru kilometri suplimentari
- WooCommerce: livrare gratuită doar pentru anumite produse
- WooCommerce: configurarea ridicării personale din magazin
- WooCommerce: selectarea datei și intervalului de livrare
- WooCommerce: ridicarea personală din magazin
- WooCommerce: tarife pentru kilometri suplimentari
- Toate ghidurile
Surse și verificare
- Free shipping și zone de livrare (documentație WooCommerce)
- Flat rate shipping (documentație WooCommerce)
Verificat pe 5 noiembrie 2026. Denumirile din setări și pașii pot diferi între versiuni.
