Contact Form 7 i ustawienie SMTP

Wtyczka Contact Form to jedno ze sprawdzonych narzędzi do tworzenia formularzy. Sprawdza się w większości przypadków, kiedy potrzebny jest prosty formularz. Wtyczka przeznaczona jest dla osób, które na widok kodu HTML nie łapią się za głowę, a mniej dla osób, które cenią sobie wygodę. Ponieważ tworzenie szablonu formularza jest dość – otwarte, nie mamy do dyspozycji żadnego edytora drag&drop. Co mi w zupełności odpowiada. Potrzebuje mieć kontrolę nad kodem, zwłaszcza gdy używam Bootstrapa jako bazy do CSS.

Dodatkowo wtyczka posiada zestaw hooków do pisania własnych pół formularzy co jest bardzo przydatne, przykład z życia: Można dodać shortcode z polem dropdown dla kategorii wpisów, gdy stanowią one kategorię produktów a formularz ma dać możliwość zapytania o konkretny produkt. Mógłbym oczywiście stworzyć dropdown i ręcznie wypisywać w nim opcje, ale przy użyciu dodatkowego modułu nie trzeba pamiętać o ręcznym dodawaniu nowych kategorii do listy rozwijanej.

Konfiguracja

Bywa tak, że hosting zabrania korzystania z funkcji php mail, oraz wymaga autoryzacji smtp. Trzeba wtedy przekonfigurować wysyłanie CF7, jednak wtyczka ta nie posiada swoich ustawień tego typu. Należy się wspomóc dodatkowym narzędziem np. WP Mail SMTP, które dobrze działa z CF7. A dla tych którzy wyznają zasadę „im mniej wtyczek tym lepiej” też jest wyjście, akcja dodawana w pliku functions.php w folderze skórki:

SMTP działa, a formularz nie.

No dobrze, ustawiałem smtp. Ale zauważyłem, że maile z formularza CF7 w dalszym ciągu nie chcą się wysyłać, a testy z wtyczki wp mail smtp dochodzą prawidłowo.

Szybki research doprowadził mnie do tego wątku na stronie wordpress.org, oraz do rozwiązania, które po lekkiej modyfikacji pomogło. W takim przypadku należy zwrócić uwagę na wersję wtyczki (w moim przypadku 4.1.1), którą posiadamy, ponieważ rozwiązanie na forum było umieszczone 4 lata temu. Struktura plików i nazwy funkcji trochę się pozmieniały. Dla mojej wersji w pliku wtyczki, znajdującym się w contact-form-7/includes/mail.php w funkcji compose() trzeba znaleźć i zamienić:

$headers = "From: $sender\n";

na

$headers = "From $sender\n";

Dajcie znać czy rozwiązanie jest dalej aktualne! ?

Jeden komentarz

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *