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' );
Створіть форму й розмістіть її
- В адмінці відкрийте «Forms → New Form», дайте формі назву й створіть її.
- У розділі «Add Fields» праворуч розмістіть поля: ім’я (Name), адреса електронної пошти (Email), номер телефону (Phone), вибір (Drop Down), основний текст (Paragraph Text), згода (Consent) тощо.
- Клацніть кожне поле, щоб відкрити його налаштування. Для обов’язкових полів увімкніть «Required».
- Збережіть форму кнопкою «Save Form».
Щоб розмістити форму на сторінці, додайте в редакторі блоків (Block editor) блок «Gravity Forms» і виберіть створену форму. Якщо розміщуєте шорткодом, він має такий вигляд, де id — ідентифікатор форми зі списку форм.
[gravityform id="1" title="false"]
Умовна логіка: показ полів залежно від умов
Показ поля «Завантаження резюме» лише тоді, коли тип звернення — «щодо працевлаштування», налаштовується за допомогою умовної логіки (Conditional Logic).
- У редакторі форми клацніть поле, яке потрібно показувати за умовою (наприклад, завантаження файлу резюме).
- У налаштуваннях поля відкрийте «Conditional Logic» і ввімкніть «Enable Conditional Logic».
- Виберіть «Show» (показати) або «Hide» (приховати) і умову: «All» (виконуються всі) чи «Any» (виконується будь-яка).
- У рядку умови виберіть вихідне поле (тип звернення), порівняння (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? Видавець сайту перебуває в Японії й відповідає японською. Написати нам (японською)