Reklama sponsora

Rejestracja adresu email przy pomocy wtyczki Flamingo i walidacja w Contact Form 7



Wstęp

W tym wpisie odpowiemy sobie na pytanie jak przy pomocy wtyczek Flamingo oraz Contact Form 7 wykonać rejestrację adresów email do bazy oraz późniejszą ich walidację. Zaczynajmy!

Flamingo

Flamingo to niezwykle prosta wtyczka która zapisuje wysłane wiadomości do bazy oraz prowadzi spis adresów email (Address Book) i właśnie ta opcja będzie dzisiaj nam potrzebna.

Formularze

Na początku utwórzmy 2 formularze kontaktowe w Contact Form 7. Pierwszy będzie zawierał tylko pole email i będzie służył do zarejestrowania adresu w bazie, drugi zaś może być standardowym formularzem kontaktowym.

 

Formularz 1 Formularz 2

 

Ważne aby w pierwszym formularzu pole z adresem nazywało się „your-email” inaczej Flamingo nie zapisze go w Address Book’u.

Następnie do naszego pliku functions.php musimy dodać 2 filtry. Pierwszy filtr odpowiedzialny będzie za sprawdzanie czy email podany w pierwszym formularzu jest już w bazie, jeśli tak użytkownik dostanie informację zwrotną, która go o tym powiadomi. Jeśli nie, email zostanie pomyślnie wpisany do bazy.

Kod filtru pierwszego wygląda następująco:

W tej funkcji pobieramy wszystkie posty z Address Book’u (typ flamingo_contact) i sprawdzamy czy któryś jego tytuł, czyli tam gdzie zapisuje się adres email, jest taki sam jak adres wpisany w polu. Jeśli funkcja znajdzie taki przypadek zwraca komunikat „Adres email jest już zarejestrowany”.

Filtr drugi wygląda bardzo podobnie:

Różni się tylko nazwą pola, którą podajemy podczas tworzenia formularza w Contact Form 7 (your-registered-email), warunkiem i komunikatem. W tym przypadku sprawdzamy czy taki adres nie wystąpił w bazie zapisanych adresów, jeśli nie dostajemy komunikat, że adres nie został jeszcze zarejestrowany i musimy to zrobić w pierwszym formularzu, jeśli tak wiadomość zostanie wysłana.

Pliki szablonu można pobrać tutaj.

 


Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *