W tym przewodniku dowiesz się, jak walidować pola wyboru WooCommerce za pomocą wtyczki Flexible Checkout Fields i tworzyć własne niestandardowe reguły sprawdzania poprawności dla podstawowych pól WooCommerce lub pól niestandardowych.
Spis treści
Wbudowane reguły walidacji
Dostępne są następujące reguły sprawdzania poprawności:
Domyślna – walidacja domyślna WooCommerce obejmuje adres e-mail, numer telefonu lub kod pocztowy.
Brak – wyłącz walidację.
Email – weryfikacja adresu email.
Numer telefonu – weryfikacja formatu numeru telefonu.
Kod pocztowy – sprawdzanie poprawności kodu pocztowego. Działa tylko wtedy, gdy pole kraju jest włączone i używa reguł walidacji specyficznych dla kraju.
W celu sprawdzenia poprawności adresu email, telefonu i kodu pocztowego elastyczne pola wtyczki korzystają z podstawowych funkcji WooCommerce. Jeśli nie są one wystarczające dla Twoich potrzeb, możesz utworzyć własne niestandardowe reguły sprawdzania poprawności dla każdego pola.
Niestandardowe reguły walidacji
Masz możliwość tworzenia własnych niestandardowych reguł walidacji dla pól zamówienia.
Jak to działa?
- Utwórz niestandardową metodę sprawdzania poprawności (korzystając z poniższych przykładów). W tym przykładzie użyjemy metody URL.
- Dodaj funkcję sprawdzania poprawności do pliku functions.php.
- Wybierz dowolne pole i zakładkę Zaawansowane. Oprócz wbudowanych reguł walidacji zobaczysz również własne reguły: Numer, URL, Długość.
- Dodaj pole Witryna i wybierz metodę sprawdzania URL.
- Przejdź do kasy WooCommerce, wprowadź nieprawidłowy adres URL w polu i złóż zamówienie.
- Pojawi się błąd sprawdzania poprawności. Nie będziesz mógł złożyć zamówienia, dopóki nie wprowadzisz prawidłowego adresu URL:
Jak stworzyć niestandardowe reguły walidacji?
Aby stworzyć niestandardowe metody walidacji użyj filtru: flexible_checkout_fields_custom_validation
.
Aby wyjaśnić, jak walidować pola użyciu niestandardowych reguł sprawdzania poprawności, użyjemy poniższego przykładu adresu URL.
Krok 1 – Utwórz funkcję sprawdzania poprawności adresu URL
Po pierwsze, potrzebujemy funkcji, aby sprawdzić poprawność adresu URL i wyświetlić błąd sprawdzania poprawności. Zostanie wywołany wpdesk_fcf_validate_url
.
Aby zweryfikować wprowadzoną wartość, użyjemy FILTER_VALIDATE_URL
w kodzie PHP.
Jeśli adres URL jest nieprawidłowy, użyjemy podstawowej funkcji WooCommerce wc_add_notice
aby wyświetlić błąd walidacji: [Field label] nie jest prawidłowym adresem URL.
Krok 2 – Użyj filtru, aby dodać nową metodę walidacji
Użyjemy filtra flexible_checkout_fields_custom_validation
aby dodać nową metodę walidacji do Flexible Checkout Fields. Będzie to funkcja wpdesk_fcf_custom_validation_url
.
W tej funkcji tworzymy meta nazwę dla niestandardowej walidacji: $custom_validation['url']
– jeśli będziesz dodawać wiele metod walidacji, ważne jest, aby nadać im unikalne nazwy.
Następnie tworzymy nazwę widoczną w ustawieniach: 'label' => 'URL'
.
Na koniec dodajemy wywołanie zwrotne do poprzednio utworzonej funkcji walidacji: 'callback' => 'wpdesk_fcf_validate_url'
. Jest to bardzo ważna część, a nazwa funkcji musi być dokładnie taka sama, jak w kroku 1.
Krok 3 – Przejdź do ustawień pól i wybierz nowo utworzoną metodę walidacji.
Poniżej znajdziesz pełny kod do sprawdzania poprawności URL.
Gotowe do użycia przykłady niestandardowej walidacji
Poniżej znajdziesz kilka przykładów.
Potwierdzenia adresu email
Możesz dodać pole sprawdzające poprawność wpisanego adresu email. Dodaj tę walidację do pola potwierdzającego adres email. Kod ten może być także użyty do sprawdzenia dowolnego innego pola.
Jeśli pole ma być porównane z innym polem niż adres email, zmień kod:
$fcf_validation_confirm_field = new WPDesk_FCF_Validation_Confirm_Field( 'billing_email' );
Zmień billing_email
na dowolne pole, np. billing_my_custom_field
.
Możesz także określić wiadomość błędu zmieniając kod:
wc_add_notice( sprintf( __( 'Invalid %1$s value.', 'wpdesk' )
Zmień 'Invalid %1$s value.'
na Twoją wiadomość.
Walidacja Numeru
Aby sprawdzić, czy klient wprowadził prawidłowy numer, użyj następującego kodu:
Walidacja Adresu Witryny (URL)
Aby sprawdzić, czy klient wprowadził prawidłowy adres URL witryny, użyj następującego kodu:
Walidacja minimalnej / maksymalnej ilości znaków
Poniższy przykład pozwala sprawdzić, czy tekst wprowadzony przez klienta zawiera od 3 do 20 znaków. Jeśli nie, zobaczy błąd weryfikacji i będzie musiał wprowadzić prawidłowy limit znaków.
Ten przykład jest nieco bardziej skomplikowany. Możesz edytować minimalny i maksymalny limit znaków w następujący sposób:
- Minimalny limit znaków – zmień
$min_length
z3
do pożądanej wartości, np.7
. - Maksymalny limit znaków – zmień
$max_length
z20
do pożądanej wartości, np.11
.
Walidacja numeru budynku / mieszkania
Poniższy kod sprawdza czy użytkownik wpisał w polu co najmniej jedną cyfrę. Ta walidacja jest bardzo przydatna np. dla pola Ulica (billing_address_1 w kodzie) gdzie użytkownik wpisuje też nr budynku / mieszkania.
Komunikat o błędzie jest edytowalny.
Enter the house / flat number with at least one digit.
Walidacja nr telefonu z prefiksem
Poniższy kod sprawdza czy użytkownik wpisał numer telefonu w formacie +48 XXX-XXX-XXX.
Walidacja polskiego kodu pocztowego
Poniższy kod sprawdza czy użytkownik wpisał polski kod pocztowy w formacie XX-XXX.