2026年11月12日

2026年11月12日

Як користуватися Gravity Forms: форми, умовна логіка, сповіщення

Ця стаття — локалізована версія японського оригіналу. Читати японський оригінал

Gravity Forms — платний плагін форм, який не розповсюджується через WordPress.org. В адмінці можна налаштувати «умовну логіку», що показує поля залежно від умов, розподіл сповіщень за змістом надісланого, збереження надісланих даних (записів, entries) у базі даних та їх експорт. У цій статті розглянуто, як створити базову форму, і як користуватися хуками для розробників. Умови ліцензій та назви елементів інтерфейсу звірено з офіційним сайтом і документацією Gravity Forms (англійською) станом на листопад 2026 року. Інтерфейс описано з англійськими назвами. Якщо ви користуєтеся локалізованим інтерфейсом, написання може відрізнятися.

Ліцензії та доступні доповнення

Від ліцензії залежать кількість сайтів і доступні доповнення (add-ons).

Ліцензія Кількість сайтів Основні доповнення
Basic 1 Базові доповнення: Mailchimp, HubSpot, reCAPTCHA тощо
Pro 3 Усе з Basic, а також Stripe, PayPal Checkout, Square, Zapier, Slack тощо
Elite Без обмежень Усі доповнення (Webhooks, User Registration, Signature, Survey тощо). Підтримується й мультисайт

Доповнення Webhooks, яке надсилає дані у зовнішні системи, доступне лише в Elite (і в ліцензії для некомерційних організацій). Stripe і PayPal Checkout для оплати доступні від Pro. Перед покупкою перевірте на офіційній сторінці цін, до якої ліцензії входять потрібні вам доповнення.

Встановлення й реєстрація ліцензійного ключа

Завантажте ZIP-файл плагіна зі сторінки облікового запису на офіційному сайті Gravity Forms, установіть його через «Плагіни» (Plugins) → «Додати новий» (Add New) → «Завантажити плагін» (Upload Plugin) і активуйте. З WP-CLI це виглядає так.

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

Ліцензійний ключ вводиться на екрані «Forms → Settings». Якщо те саме налаштування потрібно розгорнути в кількох середовищах, ключ можна записати константою в wp-config.php. Якщо константу записано, поле ліцензійного ключа на екрані налаштувань показується як таке, що не редагується.

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

Створіть форму й розмістіть її

  1. В адмінці відкрийте «Forms → New Form», дайте формі назву й створіть її.
  2. У розділі «Add Fields» праворуч розмістіть поля: ім’я (Name), адреса електронної пошти (Email), номер телефону (Phone), вибір (Drop Down), основний текст (Paragraph Text), згода (Consent) тощо.
  3. Клацніть кожне поле, щоб відкрити його налаштування. Для обов’язкових полів увімкніть «Required».
  4. Збережіть форму кнопкою «Save Form».

Щоб розмістити форму на сторінці, додайте в редакторі блоків (Block editor) блок «Gravity Forms» і виберіть створену форму. Якщо розміщуєте шорткодом, він має такий вигляд, де id — ідентифікатор форми зі списку форм.

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

Умовна логіка: показ полів залежно від умов

Показ поля «Завантаження резюме» лише тоді, коли тип звернення — «щодо працевлаштування», налаштовується за допомогою умовної логіки (Conditional Logic).

  1. У редакторі форми клацніть поле, яке потрібно показувати за умовою (наприклад, завантаження файлу резюме).
  2. У налаштуваннях поля відкрийте «Conditional Logic» і ввімкніть «Enable Conditional Logic».
  3. Виберіть «Show» (показати) або «Hide» (приховати) і умову: «All» (виконуються всі) чи «Any» (виконується будь-яка).
  4. У рядку умови виберіть вихідне поле (тип звернення), порівняння (is) і значення (щодо працевлаштування). Додати умову можна плюсом збоку від рядка.

Умовну логіку можна налаштувати окремо й для сповіщень, і для повідомлень-підтверджень.

Налаштуйте сповіщення електронною поштою

Сповіщення налаштовуються в «Forms → потрібна форма → Form Settings → Notifications». Під час створення форми для адміністратора вже готове одне сповіщення. За допомогою «Add New» додайте інші сповіщення, наприклад автовідповідь.

Пункт Зміст
Send To Куди надсилати. «Enter Email» — фіксована адреса, «Select a Field» — поле форми з адресою електронної пошти, «Configure Routing» — розподіл адресатів залежно від введених даних
From Email Відправник. {admin_email} (адреса адміністратора в розділі WordPress «Налаштування» → «Загальні») або фіксована адреса
Reply To Адреса для відповіді. Для сповіщення адміністратору зручно вказати тег злиття (merge tag) поля з адресою електронної пошти того, хто звертається, — так легше відповідати
Subject / Message Тема й текст. За допомогою тегів злиття можна підставляти введені дані

Теги злиття — це позначки, що підставляють надіслані значення. Значення поля має вигляд {Мітка:ID поля} (наприклад, {Name:1}; мітку можна опустити, і тоді підійде й {:1}), а {all_fields} підставляє всі введені дані у вигляді таблиці. Якщо вибирати теги кнопкою тегів злиття у верхньому правому куті поля повідомлення, шукати ID поля не доведеться.

Якщо адреса відправника належить до того самого домену, що й сайт, листи рідше вважаються спамом. Не використовуйте адресу того, хто звертається, як адресу відправника — вкажіть її в Reply To.

Повідомлення-підтвердження після надсилання

Що показується після надсилання, налаштовується в «Form Settings → Confirmations». Є три типи.

  • Text: показати повідомлення на місці форми (за замовчуванням)
  • Page: перейти на сторінку сайту
  • Redirect: перейти на вказаний URL

Якщо ви готуєте сторінку завершення надсилання для вимірювань реклами чи аналітики, виберіть Page або Redirect.

Додайте перевірку введених даних на PHP

Перевірки, яких бракує в налаштуваннях адмінки, можна додати фільтром gform_field_validation. Якщо після назви хука додати _ID_форми_ID_поля, він застосовуватиметься лише до цього поля. У наведеному прикладі перевіряється номер телефону, введений у поле з ID 3 у формі з ID 1. Запишіть його у functions.php теми або у власному плагіні.

<?php
// Перевірка номера телефону для форми з ID 1 і поля з ID 3
add_filter( 'gform_field_validation_1_3', function ( $result, $value, $form, $field ) {
	if ( ! is_string( $value ) || '' === $value ) {
		return $result; // Порожнє значення обробляється налаштуванням поля «Required»
	}

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

	if ( ! preg_match( '/^0\d{9,10}$/', $digits ) ) {
		$result['is_valid'] = false;
		$result['message']  = 'Номер телефону має починатися з 0 і складатися з 10 або 11 цифр (дефіси допускаються).';
	}

	return $result;
}, 10, 4 );

ID форми й ID поля показуються, коли в редакторі форми вибрати поле. Якщо форму створити заново, ID зміниться, тому перевірте, чи ID збігаються в робочому й розробницькому середовищах.

Надсилайте сповіщення зовні після відправлення

Якщо за вашої ліцензії немає доповнення Webhooks, а після кожного надсилання потрібно повідомляти, наприклад, у Slack, обробку можна написати на дії gform_after_submission. Ця дія виконується після того, як запис збережено й сповіщення надіслано. Вона виконується й для записів, позначених як спам, тому перед надсиланням перевіряйте стан. До речі, за ліцензії Pro і вище це можна налаштувати й за допомогою доповнень Slack чи Zapier.

<?php
// Після надсилання форми з ID 1 повідомити Slack Incoming Webhook
add_action( 'gform_after_submission_1', function ( $entry, $form ) {
	if ( 'spam' === rgar( $entry, 'status' ) ) {
		return;
	}

	// URL вебхука запишіть у wp-config.php так: 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( 'Нове звернення: %s', rgar( $entry, '1' ) ),
		) ),
		'timeout' => 5,
	) );
}, 10, 2 );

rgar( $entry, '1' ) — значення поля з ID 1. Поля з кількома полями введення, як-от поле імені (Name), беруться за допомогою ID з десятковою крапкою: '1.3' (ім’я), '1.6' (прізвище). URL вебхука — таємна інформація, тому не записуйте його безпосередньо в код і не додавайте у публічні репозиторії.

Перегляньте й експортуйте записи

Надіслані дані зберігаються в базі даних WordPress, і їх можна переглянути списком у «Forms → Entries». Щоб експортувати в CSV, відкрийте «Forms → Import/Export», у «Export Entries» виберіть форму, задайте поля й період і завантажте файл.

Отримати записи з PHP можна за допомогою GFAPI::get_entries(). Ось приклад перегляду останніх 10 записів через WP-CLI.

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

На що звернути увагу

  • Надіслані дані містять персональну інформацію. Якщо зберігати їх не потрібно, заздалегідь визначте порядок поводження: задайте у налаштуваннях форми строк зберігання й видалення, не залишайте без нагляду експортовані CSV-файли тощо.
  • Якщо сповіщення не доходять, причиною найчастіше є не Gravity Forms, а надсилання пошти з сервера. Покращити ситуацію може плагін, що надсилає пошту через SMTP.
  • Перш ніж додавати PHP-код, перевірте в тестовому середовищі (staging), чи збігаються ID форми й ID поля, і переконайтеся, що все працює.

Маєте запитання щодо WordPress? Видавець сайту перебуває в Японії й відповідає японською. Написати нам (японською)

お気軽にご相談ください

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