WooCommerce · Checkout
WooCommerce: validarea numărului de telefon la checkout
Un telefon greșit înseamnă un colet nelivrat. Validezi formatul la checkout, normalizezi numărul și îi dai clientului un mesaj clar de corectare.
- Format românesc
- Normalizare număr
- Mesaj de eroare clar
- Hook de validare
- Checkout clasic și blocuri
Răspuns în aceeași zi lucrătoare Ofertă fixă Fără parole
Răspuns rapid
La checkout-ul clasic, validezi telefonul în hook-ul woocommerce_checkout_process: normalizezi numărul (elimini spații, puncte, +4 sau 0040), verifici un format (de exemplu 07 urmat de 8 cifre pentru mobil românesc) și adaugi eroarea cu wc_add_notice(..., 'error'). Dacă telefonul e opțional, validezi doar când e completat. La checkout cu blocuri hook-urile clasice nu se aplică; câmpurile și validările se fac prin API-ul de câmpuri suplimentare.
Ce ai nevoie
- Regula de acceptare (doar mobile RO sau și internaționale)
- Acces la tema copil
- Știi tipul de checkout
- Un mediu de test
Pașii, pe rând
- 1Stabilește regulaAccepți doar mobile românești (07xx xxx xxx) sau și numere fixe sau internaționale? Regula depinde de curier și de clienți.
- 2Normalizează numărulElimină spații, cratime și puncte, apoi tratează prefixele +40 și 0040 ca 0. Valideaz-o pe forma normalizată.
- 3Validează la plasarea comenziiÎn woocommerce_checkout_process verifici formatul și, dacă nu e valid, adaugi o eroare cu wc_add_notice. Comanda nu se creează.
- 4Scrie un mesaj clarSpune ce nu e în regulă și dă un exemplu: „Introdu un număr de mobil valid, de exemplu 0712345678.”
- 5Salvează numărul normalizatDacă vrei să păstrezi forma curată, o salvezi normalizată în comandă; verifică doar că modulele de curierat o citesc corect.
- 6Tratează checkout-ul cu blocuriHook-ul de mai sus se aplică checkout-ului clasic. În checkout cu blocuri validarea se face prin API-ul de câmpuri suplimentare sau printr-un plugin compatibil.
- 7TesteazăNumere valide, cu prefix +40, cu spații, prea scurte, cu litere. Verifică și cazul în care telefonul e opțional.
Validare telefon mobil românesc (schelet, checkout clasic)
phpadd_action('woocommerce_checkout_process', function () {
$tel = isset($_POST['billing_phone']) ? sanitize_text_field(wp_unslash($_POST['billing_phone'])) : '';
if ($tel === '') {
return; // telefon opțional: nu validăm când e gol
}
$n = preg_replace('/[^0-9+]/', '', $tel);
$n = preg_replace('/^(\+40|0040)/', '0', $n);
if (!preg_match('/^07\d{8}$/', $n)) {
wc_add_notice('Introdu un număr de mobil valid, de exemplu 0712345678.', 'error');
}
});Fragmentele de cod sunt scheleturi: le adaptezi la magazinul tău și le testezi întâi pe un mediu de test (staging). Regula acceptă doar mobile românești; adaptează-o dacă vinzi și în afara țării sau acceptă numere fixe.
Mai multe detalii
Cauze frecvente și greșeli de evitatDacă pașii de mai sus nu au rezolvat problema
Validarea nu rulează
De ce: Checkout-ul cu blocuri nu folosește hook-ul clasic.
Ce faci: Folosește API-ul de câmpuri suplimentare sau un plugin compatibil cu blocurile.
Clienți reali sunt respinși
De ce: Regula e prea strictă (fără numere fixe, +40 cu spații, formate internaționale).
Ce faci: Normalizează și relaxează regula unde e nevoie.
Telefonul ajunge greșit la curier
De ce: Modulul de curierat citește câmpul înainte de normalizare.
Ce faci: Salvează varianta normalizată înainte de generarea AWB.
Întrebări frecvente4 răspunsuri
Pot face telefonul obligatoriu?
Da, prin filtrul woocommerce_billing_fields (billing_phone['required'] = true). Documentația WooCommerce arată filtrul și pentru varianta opțională.
Funcționează cu +40 și 0040?
Da, dacă normalizezi prefixele înainte de verificare, ca în fragment.
Și la checkout cu blocuri?
Hook-ul clasic nu se aplică; pentru blocuri ai nevoie de altă implementare.
Mă ajutați cu validarea?
Da, cu regula potrivită pentru curierul tău. Cere ofertă fixă.
Subiecte acoperite pe această pagină
- validare telefon checkout WooCommerce
- număr de telefon românesc validare
- woocommerce_checkout_process telefon
- telefon obligatoriu checkout
- format telefon 07
Ghiduri apropiate
- WooCommerce: finalizarea comenzii fără crearea unui cont
- WooCommerce: eliminarea câmpurilor inutile din checkout
- WooCommerce: adrese de facturare și livrare diferite
- WooCommerce: butonul de plasare a comenzii nu răspunde
- WooCommerce: metodele de transport nu apar la checkout
- WooCommerce: metodele de plată nu apar la checkout
- WooCommerce: eliminarea câmpurilor inutile din checkout
- Toate ghidurile
Surse și verificare
- Personalizarea câmpurilor de checkout (documentația pentru dezvoltatori)
- Additional Checkout Fields, pentru checkout cu blocuri
Verificat pe 5 noiembrie 2026. Denumirile din setări și pașii pot diferi între versiuni.
