Jak wymusić 9 cyfr numeru telefonu w WooCommerce

Jak wymusić 9 cyfr numeru telefonu w WooCommerce

WooCommerce jako sklep internetowy to bardzo dobre i wysoko rozwinięte narzędzie sprzedaży. Jest to obecnie chyba najpopularniejszy silnik sklepów internetowych na świecie. Jego specyficzny formularz realizacji zamówienia jest na tyle przemyślany, że potrafi walidować poprawność podanego przez Klienta numeru telefonu. Bez problemu wykryje, jeśli Klient w tym polu wpisze adres e-mail czy jakiekolwiek zdanie nie będące cyframi. Ale co w sytuacji, gdy przez swoje roztargnienie Klient poda za krótki lub za długi numer? Standardowo WooCommerce nie wykryje błędu i przyjmie zamówienie z niewłaściwym numerem telefonu. Możesz jednak zminimalizować to ryzyko. W tym wpisie pokażę Ci jak wymusić 9 cyfr numeru telefonu w WooCommerce (lub dowolną inną liczbę).

Po co weryfikować numer telefonu

Powód weryfikacji numeru telefonu jest oczywisty – aby zapobiec pomyłkom. Klienci czasem w swoim roztargnieniu zwyczajnie się mylą i zdarza się im “zjeść” jakąś cyfrę lub wpisać ją przypadkowo dwa razy wydłużając tym samym cały numer telefonu.

W swojej historii miałem już kilka próśb od właścicieli sklepów, aby wprowadzić dodatkowe zabezpieczenie bo klienci się mylą. Małe i średnie sklepy są w stanie wyłapać takie błędy ręcznie i w razie potrzeby napisać do klienta maila z prośbą o poprawny numer telefonu (np. dla kuriera). Duże i w pełni zautomatyzowane sklepy mają z tym jednak problemy. 

W przypadku, gdy sklep internetowy zintegrowany jest z zewnętrznym magazynem a etykiety kurierskie generowane i drukowane są automatycznie to nikt nie zwraca uwagi na dane adresata. To dopiero kurier ma problem w awaryjnej sytuacji.

Jak wymusić 9 cyfr numeru telefonu w WooCommerce

Poprawny numer telefonu może się też przydać w sytuacji, gdy realizacja zamówienia wymaga np. sms-a autoryzacyjnego. Ba! A może po prostu zbierasz numery telefonów do celów marketingowych? Kilka dużych sieciówek odzieżowych wysyła sms-em informacje o dużych promocjach. 

Miałem taki przypadek w sklepie internetowym zlokalizowanym w Danii. Co prawda duńskie numery telefonów składają się z ośmiu cyfr a polskie z dziewięciu, ale to nie problem.

W takim razie jak wymusić 9 cyfr numeru telefonu w WooCommerce? Poniżej poznasz dwie metody.

Metoda 1: Edycja pliku functions.php

Pierwszą metodą jest klasyczna i niezastąpiona edycja pliku functions.php. Najlepiej w motywie potomnym. Edycji tego pliku dokonasz albo za pomocą FTP lub poprzez opcję edycji w menu “Wygląd -> Edytor plików motywu”. Następnie z listy plików po prawej stronie kliknij nazwę “functions.php” aby przejść do edycji.

Na końcu pliku wklej poniższy fragment kodu. Możesz dowolnie wyedytować treść komunikatu, który zobaczy użytkownik po próbie złożenia zamówienia z błędnym numerem telefonu.

/**
 * Walidacja numeru telefonu przy składaniu zamówienia
 **/
add_action('woocommerce_checkout_process', 'wyklikane_checkout_field_process');

function wyklikane_checkout_field_process() {
  global $woocommerce;

  // Najpierw walidujemy czy numer ma 9 cyfr, a jeśli nie, to wyświetlamy komunikat.
  $len = strlen($_POST['billing_phone']);   
	if($len !== 9){
  	wc_add_notice( "<strong>Numer telefonu płatnika</strong> musi się składać z 9 cyfr."  ,'error' );
}
}

Metoda 2: Wtyczka Code Snippets

Alternatywną metodą edycji sklepu jest wstawienie powyższego snippetu za pomocą dedykowanej wtyczki, np. Code Snippets. Wtyczka ta służy do wstawiania takich i podobnych fragmentów kodu przez mniej zaawansowanych użytkowników lub osób, które nie posiadają motywu potomnego. Przydaje się też, gdy nie masz dostępu do samodzielnej edycji plików motywu.

Code Snippets

Różnica pomiędzy metodą 1 i 2

Musisz wiedzieć, że poza oczywistymi różnicami w sposobie dodawania kodu obiema metodami, jest jeszcze jedna zasadnicza rozbieżność. 

Snippet wstawiony w pliku w functions.php będzie działał jedynie z bieżącym motywem. W przypadku zmiany motywu, wszystkie modyfikacje tego pliku zostaną utracone.

Snippet wstawiony przy użyciu wtyczki jest globalny i działa zawsze – niezależnie od motywu. Dla niektórych będzie to zaletą, dla innych wadą. 

Sam zdecyduj czy preferujesz wtyczkowy minimalizm i szybkość działania strony czy może prostotę wdrożenia i uniwersalność działania.

Jak wymusić 9 cyfr numeru telefonu w WooCommerce

Podsumowanie

Myślę, że powyższy wpis pomoże rozwiązać problem walidacji prawidłowego numeru telefonu. Jeśli często budujesz sklepy to zastanów się, czy nie warto korzystać w opisanego rozwiązania niejako “z automatu”. Traktować go jako stałą i integralną część strony. Taki MUST HAVE przy wdrażaniu jakichkolwiek sklepów. Zaoszczędzisz sobie oraz swoim klientom trochę czasu i siwych włosów 😉

PS. Zajrzyj czasem na moją stronę Facebook, gdzie zamieszczam aktualności i ciekawostki ze świata WordPress. Możesz być też zainteresowany filmami na kanale YouTube.

ZAPISZ SIĘ DO NEWSLETTERA!

Bądź na bieżąco! W newsletterze będziesz otrzymywać m.in. informacje o nowych wpisach na blogu, poradnikach na YouTube, e-bookach oraz ważnych wydarzeniach ze świata WordPress. Wysyłam jedynie wartościowe treści.

Facebook
Twitter
Email
Drukuj