Niezapisujący się formularz w WordPress najczęściej blokuje konflikt wtyczek, pamięć podręczna albo ograniczenia serwera. Zacznij od wyczyszczenia cache, potem sprawdź błędy JavaScript w konsoli F12 i wykonaj test z wyłączonymi dodatkami. Zanim zmienisz konfigurację, wykonaj kopię zapasową plików oraz bazy danych.
Co może być przyczyną?
| Objaw | Prawdopodobna przyczyna | Sugerowane działanie |
|---|---|---|
| Formularz nie reaguje albo cały czas „wisi” | Konflikt JavaScript, wtyczki lub zasobów ładowanych przez motyw | Sprawdź konsolę przeglądarki i wykonaj test z wyłączonymi wtyczkami |
| Błąd 403 po kliknięciu przycisku | Zapora aplikacji WAF, wtyczka bezpieczeństwa albo reguła hostingu | Sprawdź logi serwera i poproś hosting o weryfikację zablokowanego żądania |
| Dane zapisują się, ale nie przychodzi wiadomość | Błędna konfiguracja poczty, filtr antyspamowy lub problem z SMTP | Sprawdź skrzynkę spam i konfigurację wysyłki e-mail |
| Pojawia się błąd 500 | Błąd PHP, niewystarczający limit pamięci lub problem po stronie wtyczki | Sprawdź logi błędów, wersję PHP i ustawienia hostingu |
Jak naprawić formularz krok po kroku?
Przed rozpoczęciem wyłączania wtyczek lub edycji ustawień utwórz kopię bazy danych i plików strony. Testy mogą chwilowo zmienić wygląd witryny albo wyłączyć część jej funkcji.
- Wyczyść pamięć podręczną – usuń cache wtyczki optymalizującej, hostingu, CDN oraz przeglądarki. Jeśli formularz korzysta z AJAX, stara wersja skryptu może wysyłać nieaktualne żądanie. Wyłącz też na chwilę minifikację i łączenie plików JavaScript, jeśli takie opcje są aktywne.
- Sprawdź formularz w trybie bezpiecznym – wyłącz wszystkie wtyczki poza tą, która obsługuje formularz, a następnie wykonaj test. Jeśli problem zniknie, włączaj dodatki pojedynczo. W ten sposób ustalisz, który z nich powoduje konflikt.
- Otwórz konsolę przeglądarki klawiszem F12 – przejdź do zakładki „Console”, odśwież stronę i ponownie wyślij formularz. Czerwone komunikaty mogą wskazywać błąd JavaScript, brak pliku, problem z domeną albo zablokowane żądanie AJAX. Błąd 403 kieruje diagnostykę raczej do zabezpieczeń serwera niż do samego formularza.
- Sprawdź ustawienia formularza – upewnij się, że pola wymagane mają poprawne nazwy, adres strony nie zmienił się po migracji, a formularz zapisuje dane do właściwej tabeli lub modułu wtyczki. Po aktualizacji wtyczki sprawdź także jej komunikaty o błędach.
- Zweryfikuj limity PHP na hostingu – przy większych formularzach znaczenie mogą mieć limit pamięci, maksymalny rozmiar żądania oraz czas wykonywania skryptu. Nie ustawiaj wartości w ciemno. Jeśli nie masz dostępu do konfiguracji serwera, poproś hosting o sprawdzenie logów i limitów dla konkretnego żądania.
Co sprawdzić, gdy podstawowe kroki nie pomogły?
Włącz logowanie błędów WordPressa, aby zebrać informacje bez wyświetlania ich odwiedzającym. W pliku konfiguracyjnym można użyć ustawień WP_DEBUG i WP_DEBUG_LOG, ale na działającej stronie komunikaty nie powinny być pokazywane publicznie. Po teście sprawdź plik logu i wyłącz debugowanie lub ogranicz je do bezpiecznego środowiska.
Przy trudniejszych przypadkach przeanalizuj także:
- logi PHP i serwera z momentu wysłania formularza,
- żądania AJAX oraz ich kody odpowiedzi w zakładce „Network” narzędzi F12,
- reguły wtyczki bezpieczeństwa i zapory WAF,
- uprawnienia do zapisu, połączenie z bazą danych oraz dostępne miejsce na hostingu.
Czy problem dotyczy zapisu, czy tylko wiadomości e-mail?
Jeżeli wpis pojawia się w panelu WordPress, ale wiadomość nie dociera do odbiorcy, formularz prawdopodobnie działa. Wtedy sprawdź folder spam, adres nadawcy oraz konfigurację SMTP. Wtyczka SMTP pomaga przekazywać pocztę przez właściwy serwer, ale nie naprawi formularza, który w ogóle nie zapisuje danych lub kończy działanie błędem PHP.
Jeśli formularz nadal zwraca błąd 500, nie zapisuje danych mimo wyłączenia wtyczek albo logi wskazują na bazę danych, potrzebna będzie pomoc administratora hostingu lub specjalisty WordPress. W takich sytuacjach dalsze zmiany na produkcyjnej stronie mogą utrudnić odzyskanie danych.