2026年11月12日

2026年11月12日

Gravity Forms: tworzenie formularzy, logika warunkowa i powiadomienia

Ten artykuł jest zlokalizowaną wersją japońskiego oryginału. Przeczytaj japoński oryginał

Gravity Forms to płatna wtyczka do formularzy, której nie ma w WordPress.org. Z poziomu panelu administracyjnego skonfigurujesz w niej „logikę warunkową", czyli wyświetlanie pól zależnie od warunków, kierowanie powiadomień do różnych adresatów w zależności od treści zgłoszenia oraz zapisywanie w bazie danych i eksport przesłanych danych (wpisów, entries). W tym artykule opisuję podstawy tworzenia formularza oraz użycie hooków dla programistów. Zakres licencji i nazwy pozycji na ekranach sprawdziłem na oficjalnej stronie Gravity Forms i w dokumentacji (po angielsku) według stanu na listopad 2026. Ekrany opisuję z angielskimi nazwami pozycji. Jeśli panel masz po polsku, zapis może się różnić.

Licencje i dostępne dodatki

Od licencji zależy liczba witryn i dostępne dodatki.

Licencja Liczba witryn Główne dodatki
Basic 1 Podstawowe dodatki, takie jak Mailchimp, HubSpot, reCAPTCHA
Pro 3 Oprócz zawartości Basic m.in. Stripe, PayPal Checkout, Square, Zapier, Slack
Elite Bez limitu Wszystkie dodatki (Webhooks, User Registration, Signature, Survey itd.). Obsługuje też multisite

Dodatek Webhooks, który wysyła przesłane dane do zewnętrznych systemów, jest dostępny tylko w licencji Elite (i w licencji dla organizacji non-profit). Dodatki płatnicze Stripe i PayPal Checkout są dostępne od Pro wzwyż. Przed zakupem sprawdź na oficjalnej stronie z cennikiem, w której licencji jest potrzebny Ci dodatek.

Instalacja i rejestracja klucza licencyjnego

Pobierz plik ZIP wtyczki ze strony konta na oficjalnej stronie Gravity Forms, zainstaluj go w „Wtyczki → Dodaj nową → Wyślij wtyczkę na serwer" (Plugins → Add New → Upload Plugin) i włącz. Jeśli używasz WP-CLI, zrób to tak:

wp plugin install /path/to/gravityforms.zip --activate

Klucz licencyjny wpisz na ekranie „Forms → Settings". Gdy tę samą konfigurację rozdzielasz na wiele środowisk, możesz też zapisać go jako stałą w wp-config.php. Po zapisaniu stałej pole klucza licencyjnego na ekranie ustawień nie da się edytować.

define( 'GF_LICENSE_KEY', 'YOUR-LICENSE-KEY-HERE' );

Utwórz formularz i umieść go na stronie

  1. W panelu administracyjnym otwórz „Forms → New Form", nadaj nazwę formularzowi i utwórz go.
  2. Z „Add Fields" po prawej stronie umieść pola, takie jak nazwisko (Name), adres e-mail (Email), numer telefonu (Phone), lista wyboru (Drop Down), treść (Paragraph Text), zgoda (Consent).
  3. Po kliknięciu pola otwierają się jego ustawienia. W polach obowiązkowych włącz „Required".
  4. Zapisz przez „Save Form".

Aby umieścić formularz na stronie, w edytorze blokowym dodaj blok „Gravity Forms" i wybierz utworzony formularz. Jeśli umieszczasz go shortcode'em, użyj poniższej postaci, gdzie id to identyfikator formularza widoczny na liście formularzy.

[gravityform id="1" title="false"]

Wyświetlanie pól warunkowo dzięki logice warunkowej

Takie rzeczy jak „pole do wgrania CV pokazuj tylko wtedy, gdy rodzaj zapytania to «Rekrutacja»" ustawiasz przez logikę warunkową (Conditional Logic).

  1. W edytorze formularza kliknij pole, które ma być wyświetlane warunkowo (np. pole wgrywania pliku z CV).
  2. W ustawieniach pola otwórz „Conditional Logic" i włącz „Enable Conditional Logic".
  3. Wybierz „Show (pokaż)" lub „Hide (ukryj)" oraz warunek „All (wszystkie spełnione)" lub „Any (którykolwiek spełniony)".
  4. W wierszu warunku wybierz pole źródłowe (rodzaj zapytania), porównanie (is) i wartość (Rekrutacja). Plusem obok wiersza dodasz kolejne warunki.

Logikę warunkową można ustawić także osobno dla powiadomień i dla komunikatów potwierdzających.

Skonfiguruj powiadomienia e-mail

Powiadomienia e-mail ustawiasz w „Forms → wybrany formularz → Form Settings → Notifications". Po utworzeniu formularza jest już przygotowane jedno powiadomienie dla administratora. Przyciskiem „Add New" dodasz kolejne powiadomienia, np. automatyczną odpowiedź.

Pozycja Zawartość
Send To Adresat. „Enter Email" to stały adres, „Select a Field" to pole e-mail z formularza, a „Configure Routing" kieruje do różnych adresatów zależnie od wpisanej treści
From Email Nadawca. {admin_email} (adres e-mail administratora z „Ustawienia → Ogólne" w WordPress, Settings → General) albo stały adres
Reply To Adres do odpowiedzi. W powiadomieniu dla administratora warto wstawić merge tag pola z adresem e-mail osoby, która napisała, bo ułatwi to odpowiedź
Subject / Message Temat i treść. Merge tagami możesz wstawić wpisane dane

Merge tag to symbol, w którego miejsce wstawiana jest przesłana wartość. Wartość pola ma postać {etykieta:ID pola} (np. {Name:1}; etykietę można pominąć i napisać {:1}), a {all_fields} wstawia całą wpisaną treść w postaci tabeli. Jeśli wybierzesz je przyciskiem merge tagów w prawym górnym rogu pola wiadomości, nie musisz sprawdzać ID pól.

Jeśli adres nadawcy należy do tej samej domeny co witryna, rzadziej trafia do spamu. Adresu e-mail osoby, która napisała, unikaj jako nadawcy i wpisz go w Reply To.

Komunikat potwierdzający po wysłaniu

To, co jest wyświetlane po wysłaniu, ustawiasz w „Form Settings → Confirmations". Są trzy rodzaje:

  • Text: wyświetla komunikat w miejscu formularza (ustawienie domyślne)
  • Page: przechodzi do strony statycznej w witrynie
  • Redirect: przechodzi pod wskazany adres URL

Jeśli przygotowujesz stronę z potwierdzeniem wysłania, aby używać jej do pomiaru reklam lub analityki, wybierz Page lub Redirect.

Dodaj walidację w PHP

Walidację, której nie da się ustawić w panelu, dodasz filtrem gform_field_validation. Jeśli po nazwie haka dopiszesz _ID formularza_ID pola, filtr zadziała tylko dla tego pola. Poniższy przykład waliduje numer telefonu wpisany w polu o ID 3 w formularzu o ID 1. Umieść go w functions.php motywu lub we własnej wtyczce.

<?php
// Waliduje numer telefonu w formularzu o ID 1, polu o ID 3
add_filter( 'gform_field_validation_1_3', function ( $result, $value, $form, $field ) {
	if ( ! is_string( $value ) || '' === $value ) {
		return $result; // Brak wpisu zostawiamy ustawieniu „Required" pola
	}

	$digits = str_replace( array( '-', ' ' ), '', $value );

	if ( ! preg_match( '/^0\d{9,10}$/', $digits ) ) {
		$result['is_valid'] = false;
		$result['message']  = 'Wpisz numer telefonu zaczynający się od 0, składający się z 10 lub 11 cyfr (myślniki są dozwolone).';
	}

	return $result;
}, 10, 4 );

ID formularza i ID pola zobaczysz w edytorze formularza po wybraniu pola. Po ponownym utworzeniu formularza ID się zmienia, więc sprawdź, czy w środowisku produkcyjnym i deweloperskim są takie same.

Powiadamianie na zewnątrz po wysłaniu

Jeśli w licencji bez dodatku Webhooks chcesz przy każdym wysłaniu informować np. Slack, możesz napisać obsługę w akcji gform_after_submission. Ta akcja jest wykonywana po zapisaniu wpisu i wysłaniu powiadomień e-mail. Uruchamia się też dla wpisów uznanych za spam, więc przed wysłaniem sprawdź stan. Przy licencji Pro lub wyższej można to też skonfigurować dodatkiem Slack lub Zapier.

<?php
// Po wysłaniu formularza o ID 1 powiadom Incoming Webhook Slacka
add_action( 'gform_after_submission_1', function ( $entry, $form ) {
	if ( 'spam' === rgar( $entry, 'status' ) ) {
		return;
	}

	// Adres URL Webhooka zapisz w wp-config.php jako define( 'MY_SLACK_WEBHOOK_URL', '...' );
	if ( ! defined( 'MY_SLACK_WEBHOOK_URL' ) ) {
		return;
	}

	wp_remote_post( MY_SLACK_WEBHOOK_URL, array(
		'headers' => array( 'Content-Type' => 'application/json' ),
		'body'    => wp_json_encode( array(
			'text' => sprintf( 'Nowe zapytanie: %s', rgar( $entry, '1' ) ),
		) ),
		'timeout' => 5,
	) );
}, 10, 2 );

rgar( $entry, '1' ) to wartość pola o ID 1. Pola z kilkoma polami wpisywania, takie jak pole imienia i nazwiska (Name), pobierasz przez ID z kropką, np. '1.3' (imię) i '1.6' (nazwisko). Adres URL Webhooka to informacja tajna, więc nie wpisuj go bezpośrednio w kodzie i nie umieszczaj go w publicznym repozytorium.

Przeglądanie i eksport wpisów

Przesłane dane są zapisywane w bazie danych WordPress i możesz je przeglądać w „Forms → Entries". Aby wyeksportować je do CSV, otwórz „Forms → Import/Export", w „Export Entries" wybierz formularz, wskaż pola i okres do eksportu, a następnie pobierz plik.

Z poziomu PHP pobierzesz je przez GFAPI::get_entries(). To przykład sprawdzenia w WP-CLI ostatnich 10 wpisów.

wp eval 'echo wp_json_encode( GFAPI::get_entries( 1, array(), null, array( "offset" => 0, "page_size" => 10 ) ) );'

Na co uważać

  • Przesłane dane zawierają dane osobowe. Jeśli nie musisz ich przechowywać, ustal zasady postępowania, np. okres przechowywania w ustawieniach formularza i usuwanie danych, albo niepozostawianie wyeksportowanych plików CSV bez nadzoru.
  • Jeśli powiadomienia e-mail nie docierają, przyczyną jest często nie Gravity Forms, lecz wysyłka poczty z serwera. Pomóc może wtyczka wysyłająca przez SMTP.
  • Zanim dodasz kod PHP, sprawdź w środowisku stagingowym, czy ID formularza i ID pola są poprawne.

Pytania o WordPress? Wydawca tej witryny ma siedzibę w Japonii i odpowiada po japońsku. Kontakt (po japońsku)

お気軽にご相談ください

お見積りへ お問い合わせへ
▲