Dodano 2019-05-16 15:27:48 przez Adrian
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 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.
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.