Czy twój Contact Form 7 nie wysyła wiadomości? Może „zawiesza się” i „kręci” w nieskończoność? Przed chwilą miałem ten sam problem. Skąd się wziął? Jak go zdiagnozować i naprawić?

Zabezpieczenie strony opartej o WordPress to ważny proces. Celowo nie używam słowa etap, ponieważ dbanie o bezpieczeństwo to ciągła praca.

Jednym z popularnych sposobów na podwyższenie poziomu zabezpieczeń naszej strony to wyłączenie tak zwanego REST API – na przykład, za pomocą wtyczki Disable REST API. Wyłączenie to trzeba jednak robić z głową żeby potem nie być zaskoczonym, tak jak ja.

Przyłapałem się właśnie na tym, że na dwóch moich stronach (w tym Blogu Elimu) przestał działać formularz kontaktowy oparty o popularną wtyczkę Contact Form 7.

Jeden z odwiedzających zwrócił mi uwagę, że formularz kontaktowy zamiast wysyłać maila „kręci” tylko kółeczkiem – w nieskończoność – jak na obrazku niżej.

Kiedy przejrzałem się szczegółowo co się dzieje okazało się że po kliknięciu w „Wyślij” przeglądarka wysyła żądanie do serwera ale dostaje odpowiedź 401.

Możemy to sprawdzić przez narzędzia dostępne w każdej przeglądarce pod klawiszem F12, na zakładce „Network” czy „Sieć”.

Zrzut ekranu wygląda jak instrukcja do oscyloskopu, wiem. Ale z grubsza sprawdzamy to tak:

  1. Ładujemy naszą stronę z formularzem,
  2. Uruchamiamy narzędzia developerskie (F12) i przechodzimy w nich na zakładkę „Network”,
  3. Wypełniamy i wysyłamy formularz,
  4. W „Network” pojawi się jedno nowe żądanie jakie w tle wysłała przeglądarka,
  5. Klikamy na jego nazwę (feedback) i szukamy po zakładkach „Headers”, „Preview” ciekawych komunikatów.

W tym wypadku w Headers mamy nagłówki a śród nich kod odpowiedzi serwera – 404 – co już powinno nas zaniepokoić.

Zakładka Preview pokaże nam treść odpowiedzi, a w niej:

message: "DRA: Only authenticated users can access the REST API."

Z tego już skojarzyłem fakt instalacji jakiś czas temu wtyczki Disable REST API więc wystarczyło już tylko poprawić jej ustawienia. Czyli:

  1. Przejść na stronę konfiguracji wtyczki Disable REST API
  2. Zaznaczyć te opcje i zapisać:

Sukces! Formularz zaczął działać poprawnie.

Warto pamiętać, że mając na pokładzie wtyczkę taką jak Disable REST API i instalując później kolejne wtyczki, możemy mieć podobny przypadek. Na liście możliwych do blokowania interfejsów API pojawić się nam mogą nowe, wcześniej nieistniejące pozycje. Będą one domyślnie zablokowane dla niezalogowanych użytkowników (i słusznie).

Warto raz na jakiś czas zaglądnąć do konfiguracji tego modułu.

Biuletyn elimu

Wysyłany raz w miesiącu

Nie spamujemy! Zajrzyj do polityki prywatności po więcej informacji