Salutare!
Astăzi am primit un task în care trebuia să găsesc o soluție pentru validarea numărului de telefon (câmpul din checkout). Condiția principală era să mă asigur că vizitatorul introduce un număr de telefon format din 10 cifre.
Când am realizat că by default Woocommerce-ul nu face o astfel de validare, mi-am zis: „Super, încă un topic pentru blog 🤓”
Dacă pentru magazinul tău (sau al clientului tău) numărul de telefon este esențial pentru validarea/ confirmarea/ procesarea comenzii, atunci asigură-te că utilizatorul îl introduce corect. Sau mai corect spus, asigură-te că nu plasează comanda introducând un număr de telefon din 9 sau 11 cifre. Cum se spune – și pe bună dreptate – „NEVER trust user input” 😅
Deși validarea s-ar putea face foarte ok folosind JavaScript, am ales să o fac prin PHP.
Let’s take a look:
//
// limiteaza campul de telefon (din Checkout) la 10 cifre
//
add_action('woocommerce_checkout_process', 'my_custom_checkout_field_process');
function my_custom_checkout_field_process() {
global $woocommerce;
if ( ! (preg_match('/^[0-9]{10}$/D', $_POST['billing_phone'] ))){
wc_add_notice( "Numar de telefon incorect! Te rog introdu un numar de telefon din 10 cifre" ,'error' );
}
}
//
// Happy Coding
//
Unde trebuie adăugat scriptul de mai sus? În fișierul functions.php pe care-l găsești în public_html/wp-content/themes/numele temei tale/ (sper că folosești Child Theme)
Sună a chineză pentru tine? Nu-i nimic, poți face același lucru folosind un plugin.
Thank you WordPress Community 🙂
Uite un plugin pe care-l poți testa – Phone Validator for WooCommerce
Acest plugin ajută la validarea numerelor de telefon (la niv. internațional) adăugând un dropdown menu în câmpul de telefon cu ajutorul căruia utilizatorul își alege țara (țară conf. căreia se va face validarea).
Cam atât pentru astăzi…
Happy coding!
P.S. Știi alte metode mai eficiente prin care putem valida numărul de telefon? Dacă da, aștept comentariul tău 👇