Jak dodać powiadomienie dla administratora przy rejestracji nowego klienta w WooCommerce

powiadomienia woocommerce

Trudno znaleźć sklep internetowy, który nie posiadałby opcji zakładania konta dla użytkownika. Brak  tej opcji negatywnie wpływa na wizerunek e-sklepu i może w oczach odwiedzającego oznaczać, że właściciel strony nie dba o swoich klientów.

Oczywiście nie wszyscy użytkownicy rejestrują się na stronie, tym bardziej, gdy planują zrobić jednorazowy zakup. Ale są tacy, którzy na pewno dołączyliby do grona użytkowników sklepu internetowego. Ich można łatwiej nakłonić do tego, aby zostali stałymi klientami, oferując ciekawe promocje. Obecność konta klienta jest właśnie jednym z głównych instrumentów do realizacji tego celu.

Jeśli szukasz wtyczki do łatwego stworzenia własnej treści do e-maili wysyłanych z WooCommerce to sprawdź darmową wtyczkę ShopMagic (nowa wtyczka WP Desk).

Zobacz wtyczkę →

Edycja treści e-maili w WooCommerce

Dla użytkowników systemu WordPress dostępne są standardowe opcje zakładania konta i zarządzania nim. Oprócz tego, z poziomu strony administratora, jest zestaw instrumentów do zarządzania kontami użytkowników. Należy tylko aktywować możliwość zakładania kont (standardowo ta opcja jest wyłączona) i skorzystać z bazowych opcji WordPress.

Wtyczka WooCommerce również zawiera blok odpowiadający za rejestrację klientów i zarządzania nimi, co również upraszcza proces realizacji sklepu internetowego. Na pewno tych opcji jest za mało dla tworzenia dużego e-sklepu, ale jeśli jest potrzeba, można skorzystać z dodatkowych rozwiązań. Część z nich znajduję się w repozytorium WordPress.   Ale to już zupełnie inna bajka.

Dzisiejszy temat dotyczy dość prostej kwestii, która może pojawić się podczas tworzenia sklepu internetowego. Chodzi o możliwości wysyłania powiadomień do administratora przy rejestracji nowego klienta w WooCommerce. Jeśli w przypadku zwykłej rejestracji na stornie WordPress takie powiadomienie trafia na skrzynkę admina, to podczas zakładania konta na stronie sklepu już nie. Przyczyna tego problemu kryje się w różnych rolach użytkowników nadawanych przez system podczas rejestracji na stronie i w sklepie. Podczas rejestracji na stronie WordPress odwiedzający otrzymuje rolę subskrybent (administrator może ją zmienić następnie na współpracownik, autor, redaktor albo administrator). W przypadku WooCommerce to klient (customer), któremu administrator może nadać rolę manager sklepu (shop manager).

Dlatego aby rozwiązać powyższy problem należy dodać funkcję, która będzie wysyłać powiadomienia podczas rejestracji klientów na stronie sklepu. Tak jak i w poprzednim naszym wpisie dodamy taką funkcję do pliku functions.php używanego motywu domyślnego. Ten plik znajduje się w katalogu z motywem i dostać się do niego można za pomocą ftp, menedżera plików na hostingu oraz za pomocą edytora wbudowanego w WordPress.

W naszym przypadku skorzystamy z dostępnego w sekcji Wygląd panelu administracyjnego WordPress.  Za jego pomocą otwórzmy plik functions.php, przejdźmy na koniec pliku i dodajmy następujący kod (rys. 1):

Modyfikacja pliku functions.php powiadomienia woocommerce
Rysunek 1. Modyfikacja pliku functions.php motywu
add_action('woocommerce_created_customer', 'admin_email_on_registration', 10 , 1);

function admin_email_on_registration( $customer_id) {

    wp_new_user_notification( $customer_id );

}

W powyższym kodzie woocommerce_created_customer to argument funkcji (znany również jak WP hook), który jest wywoływany, gdy tworzy się konto dla użytkownika przez WooCommerce. Za jego pomocą wysyła się powiadomienia dla klienta o udanej rejestracji. Dlatego skorzystamy z tego hooka do wysyłania emaili również do administratora. Pomoże nam w tym funkcja wp_new_user_notification funkcji ().

Teraz możemy zapisać zmiany w pliku functions.php i sprawdzić, jak to działa. Dlatego zarejestrujemy nowego użytkownika na stronie używając dowolnego adresu e-mail i hasło (rys. 2):

Rejestracja użytkownika sklepu powiadomienia woocommerce
Rysunek 2. Rejestracja użytkownika na stronie sklepu

Po udanej rejestracji pojawi  się  przed nami strona Moje konto (rys. 3), która pozwala użytkownikowi zarządzać  danymi personalnymi, informacją kontaktową, zamówieniami itd.

Strona „Moje konto” po rejestracji użytkownika powiadomienia woocommerce
Rysunek 3. Strona „Moje konto” po rejestracji użytkownika

W miedzy czasie na skrzynkę wpisaną podczas zakładania strony (skrzynkę administratora) przyszedł email informujący o rejestracji nowego użytkownika (rys. 4).

email do użytkownika powiadomienia woocommerce
Rysunek 4. Email do admina informujący o rejestracji nowego użytkownika w WooCommerce

Treść emaila jest taka sama, jak w przypadku z rejestracją użytkownika na stronie WordPress. Zmienić ją można modyfikując zawartość pliku pluggable.php, który znajduje się w folderze wp-includes na serwerze. Oprócz tego w repozytorium dostępne są różne wtyczki, pozwalające zmienić zawartość emaili bezpośrednio z panelu administracyjnego WordPress.

Podsumowanie

Jak widać, udało się rozwiązać nasz dzisiejszy problem w bardzo prosty sposób. Dlatego zmodyfikowaliśmy plik functions.php, który znajduje się w folderze z motywem używanym domyślnie. Pod naszym ostatnim wpisem opublikowanym na stronie pojawił się bardzo ważny komentarz od Jakuba Jaworowicza. Dotyczy on modyfikacji plików motywu. Autor komentarza mówi na o tym, że wszystkie zmiany, które chcielibyśmy wprowadzić do motywu należy robić z motywem potomnym. Tworzenie i modyfikacja motywu potomnego pozwoli zabezpieczyć wszystkie wprowadzone zmiany przed utratą podczas następnej aktualizacji template’u. Zgadzamy się z tym w 100%! W naszym przypadku jest to przykładowe rozwiązanie problemu. Ale na stałe musi ono znajdować się w pliku functions.php motywu potomnego.

P.S. Dziękuję za ten komentarz! Bardzo miło, że wzbudził on dyskusję. Zapraszam również do komentowania pozostałych wpisów ;)

Ekskluzywne porady, triki i trendy bezpośrednio na Twoją skrzynkę odbiorczą. Adres e-mail

* indicates required

Ekskluzywne porady, triki i trendy bezpośrednio na Twoją skrzynkę odbiorczą. Adres e-mail

* indicates required