2026年11月12日
2026年11月12日
Как пользоваться Gravity Forms: формы, условная логика, письма
Эта статья — локализованная версия японского оригинала. Читать японский оригинал
Gravity Forms — платный плагин форм, который не распространяется через WordPress.org. В админ-панели можно настроить «условную логику» (показ полей в зависимости от условий), распределение уведомлений по получателям в зависимости от содержимого отправки, сохранение отправленных данных (записей, entries) в базе данных и их экспорт. В статье разобраны создание простой формы и использование хуков для разработчиков. Условия лицензий и названия элементов интерфейса сверены в ноябре 2026 года с официальным сайтом и документацией Gravity Forms (на английском). Экраны описаны с английскими названиями пунктов. Если у вас интерфейс на русском языке, написание может отличаться.
Лицензии и доступные дополнения
От лицензии зависят число сайтов и доступные дополнения.
| Лицензия | Число сайтов | Основные дополнения |
|---|---|---|
| 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».
Чтобы поместить форму на страницу, добавьте в блочном редакторе блок «Gravity Forms» и выберите созданную форму. Если вы размещаете её шорткодом, он выглядит так, где id — 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 | Адрес для ответа. В уведомлении администратору удобнее вставить мерж-тег поля с адресом написавшего, чтобы было легче отвечать |
| 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 3 формы с ID 1
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 уведомляем Incoming Webhook в Slack
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? Издатель сайта находится в Японии и отвечает по-японски. Связаться (по-японски)