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' );

Создайте форму и разместите её

  1. Откройте в админ-панели «Forms → New Form», задайте имя формы и создайте её.
  2. В разделе «Add Fields» справа разместите поля: имя (Name), адрес электронной почты (Email), номер телефона (Phone), варианты выбора (Drop Down), основной текст (Paragraph Text), флажок согласия (Consent) и т. п.
  3. Если щёлкнуть по полю, откроются его настройки. Для обязательных полей включите «Required».
  4. Сохраните форму кнопкой «Save Form».

Чтобы поместить форму на страницу, добавьте в блочном редакторе блок «Gravity Forms» и выберите созданную форму. Если вы размещаете её шорткодом, он выглядит так, где id — 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 Адрес для ответа. В уведомлении администратору удобнее вставить мерж-тег поля с адресом написавшего, чтобы было легче отвечать
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? Издатель сайта находится в Японии и отвечает по-японски. Связаться (по-японски)

お気軽にご相談ください

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