Ukryte pola i przekazywanie danych w Contact Form 7 to prosty sposób, aby każdy formularz na WordPress zbierał więcej kontekstu bez obciążania użytkownika dodatkowymi pytaniami. Dzięki temu w mailu możesz widzieć URL strony, adres e-mail, a nawet datę i czas wysyłki. Ułatwia pracę administratora i porządkuje obsługę zapytań. To także wsparcie dla analizy marketingowej i integracja z CRM, gdy potrzebujesz lepszego zapisu leadów. Ten techniczny poradnik pokazuje, jak podejść do ukrytych informacji w bezpieczny oraz elastyczny sposób.
Po co przekazywać ukryte pola w formularzu kontaktowym?
W wielu projektach WordPress sam formularz nie wystarcza, bo administrator potrzebuje dodatkowych informacji, żeby szybko ocenić zgłoszenie. Ukryte pole pozwala dopisać do wiadomości kontekst, na przykład URL podstrony, z której nastąpiła wysyłka. Działa to świetnie, gdy formularz kontaktowy na stronie występuje w kilku miejscach lub jest ich kilka. To też praktyczne, gdy chcesz przechowywać podstawowe dane o źródle wejścia, albo odróżniać przesłane formularze z różnych sekcji strony. Takie pola nie służą jako zabezpieczenie, ale pomagają w antyspamie po stronie serwera. Możesz wykrywać boty (np. poprzez honeypot lub zbyt szybkie wysłanie) i analizować, z jakich podstron najczęściej przychodzi spam, aby włączyć ostrzejsze reguły tylko tam.
Jak przekazać ukryte pola w formularzu Contact Form 7?
W praktyce zaczynasz od dodania w formularzu tagów typu [hidden]. Są wbudowane i pozwalają na dodanie ukrytych pól. Następnie wybierasz źródło danych. Może to być stała wartość wpisana na sztywno, informacje pobrane z WordPress, albo parametry dopisane w trakcie wysyłki po stronie serwera. Dzięki temu formularz przekazuje więcej kontekstu w treści wiadomości, bez rozbudowywania pól widocznych. To rozwiązanie jest przydatne, gdy na stronie internetowej działa wiele formularzy kontaktowych i chcesz je łatwo rozróżnić, a jednocześnie zachować prostą konfigurację. Poniżej pokazujemy osobno pola statyczne i pola dynamiczne, aby nie mieszać metod.
Pola statyczne
Pola statyczne to najprostszy wariant, gdy formularz ma zawsze przekazywać tę samą informację, niezależnie od podstrony i źródła wejścia. To dobre rozwiązanie, gdy chcesz oznaczyć typ zapytania, wersję formularza, albo dodać krótki label do późniejszej segregacji. Ten sposób jest domyślny, darmowy i nie wymaga dodatkowego kodu PHP ani wtyczki. Wystarczy poprawna konfiguracja w panelu. Do formularza należy wtedy dodać poniższe pola:
[hidden form_label "Kontakt - strona główna"]
[hidden source "landing"]
Pola dynamiczne
Pola dynamiczne stosuje się wtedy, gdy formularz ma automatycznie przekazywać wartości zależne od kontekstu. Przykładowo, URL podstrony, ID strony lub jej tytuł w WordPress. Dzięki tym polom obsługa staje się bardziej konkretna i łatwiejsza do obsługi. To także wygodne, gdy na stron internetowych działa wiele formularzy i trzeba je rozróżnić. Poniżej opisujemy dwa sposoby uzyskania takiego efektu.
Wtyczka CF7 Dynamic Text Extension
Jeśli zależy Ci na szybkim wdrożeniu bez pisania własnych filtrów, to wtyczka CF7 Dynamic Text Extension dodaje w CF7 dwa nowe tagi. Są to dynamic_text i dynamic_hidden, które potrafią wypełniać pola wartościami dynamicznymi. W praktyce wstawiasz je do formularza, a jako wartość podajesz wbudowane „komendy” wtyczki (np.: CF7_URL albo CF7_GET) i ona sama podstawia wynik, który potem możesz użyć w mailu. Przykładowo, w formularzu możesz umieścić taki fragment:
[dynamic_hidden page_url "CF7_URL"]
[dynamic_hidden utm_source "CF7_GET key='utm_source'"]
Następnie w treści wiadomości do administratora należy dodać ten fragment:
Strona: [page_url]
UTM source: [utm_source]
Wtyczka CF7 Dynamic Text Extension
Jeśli nie chcesz używać żadnej wtyczki do WordPress, możesz uzupełnić pola dynamiczne po stronie serwera w momencie wysyłki formularza. To podejście jest stabilne, bo nie zależy od JS ani od tego, jak przeglądarka obsłuży formularz. Wystarczy dodać w formularzu tag typu hidden, a następnie dodać krótki kod w PHP (np.: do pliku functions.php). Poniżej pokazujemy 2 przykłady:
Przykład adresu URL strony ([hidden page_url]):
Przykład tytułu podstrony ([hidden post_title]):
Pamiętaj, aby dopisać także w wiadomości do administratora odpowiedni fragment (np.: „URL: [hidden page_url]„).

