Перейти к содержимому

Мост отправки Gravity Forms

POST
/wp-json/wp2lms/turbo/v1/gravity-forms/submit
curl --request POST \
--url https://example.com/wp-json/wp2lms/turbo/v1/gravity-forms/submit \
--header 'Content-Type: application/json' \
--data '{ "form_id": 3, "input_values": { "input_1": "Иванов", "input_2": "learner@example.com" } }'

Публичный REST-мост GFAPI::submit_form для Turbo-страницы. PHP собирает поля input_* из корня тела и/или из объекта input_values (объект или JSON-строка). Файлы — multipart input_N / input_N[i]. Пустые checkbox-подинпуты и boolean PHP выкидывает. Обязателен положительный form_id (иначе 400 invalid_form). Формы с таким id нет — 404 not_found. Нет класса GFAPI — 503 unavailable. Нужен nonce wp_rest в X-WP-Nonce или _wpnonce (403 invalid_nonce). Это не heartbeat admin-ajax fallback (data[wp2t]) и не создание формы. Невалидные поля GF — всё равно HTTP 200 с is_valid=false и validation_messages. Успех с опросом: pollResults из gf_polls, HTML gpoll вырезается из confirmation. Cookie-сессия не требуется.

Media typeapplication/json
object
form_id

ID формы Gravity Forms. Должен быть > 0, иначе 400 invalid_form. Можно передать в JSON, query или multipart.

integer
input_values

Карта input_N → значение. Альтернатива — те же ключи в корне тела. Строка JSON тоже принимается. Ключи без префикса input_ игнорируются.

object
key
additional properties
any
key
additional properties
any
Example
{
"form_id": 3,
"input_values": {
"input_1": "Иванов",
"input_2": "learner@example.com"
}
}

Ответ GFAPI::submit_form, нормализованный мостом: is_valid, validation_messages, confirmation, pollResults, entry_id, user_id.

Media typeapplication/json
object
is_valid

Прошла ли валидация GF (!empty(result['is_valid'])). false не меняет HTTP-код — остаётся 200.

boolean
validation_messages

Сообщения failed_validation по id поля GF. Пустой объект, если форма валидна.

object
key
additional properties
string
confirmation

Confirmation_message GF (строка; HTML). Разметка gpoll_container вырезается, если есть pollResults.

string
pollResults

Структурированные результаты опросов (gf_polls). [] если аддона нет, displayResults выключен или полей poll не было.

Array<object>
object
fieldId

ID поля-опроса Gravity Forms.

integer
label

Подпись поля опроса.

string
style

Стиль gf_polls (настройка формы, часто green).

string
showPercentages

Показывать проценты (настройка displayResults формы).

boolean
showCounts

Показывать абсолютные счётчики.

boolean
choices

Варианты опроса с долями и фактом выбора текущей заявки.

Array<object>
object
label

Подпись варианта опроса.

string
ratio

Доля голосов (0…1) из gpoll_get_results.

number
count

Число голосов за вариант.

integer
selected

True, если текущая заявка выбрала этот вариант.

boolean
entry_id

ID записи GF. null, если entry не создана (часто при is_valid=false).

integer
nullable
user_id

Get_current_user_id() на момент сабмита; 0 для гостя (типичный публичный Turbo).

integer
Example
{
"is_valid": true,
"validation_messages": {},
"confirmation": "Спасибо, заявка принята.",
"pollResults": [],
"entry_id": 901,
"user_id": 0
}

Invalid_form — form_id ≤ 0. Либо WP_Error из GFAPI::submit_form со status 400 (код как у Gravity Forms).

Media typeapplication/json
object
code

Машинный код WP_Error (например wp2lms_static_builder_busy, rest_forbidden, invalid_nonce).

string
message

Человекочитаемое сообщение ошибки из PHP / WordPress REST.

string
data

Обычно { status: <HTTP-код> }. Если status нет, ядро REST часто отдаёт 500.

object
key
additional properties
any
Example
{
"code": "wp2lms_static_builder_busy",
"message": "Build is currently building and cannot be updated.",
"data": {
"status": 409
}
}

Invalid_nonce — нет или неверный nonce wp_rest (заголовок X-WP-Nonce или параметр _wpnonce).

Media typeapplication/json
object
code

Машинный код WP_Error (например wp2lms_static_builder_busy, rest_forbidden, invalid_nonce).

string
message

Человекочитаемое сообщение ошибки из PHP / WordPress REST.

string
data

Обычно { status: <HTTP-код> }. Если status нет, ядро REST часто отдаёт 500.

object
key
additional properties
any
Example
{
"code": "wp2lms_static_builder_busy",
"message": "Build is currently building and cannot be updated.",
"data": {
"status": 409
}
}

Not_found — GFAPI::get_form не вернул массив формы.

Media typeapplication/json
object
code

Машинный код WP_Error (например wp2lms_static_builder_busy, rest_forbidden, invalid_nonce).

string
message

Человекочитаемое сообщение ошибки из PHP / WordPress REST.

string
data

Обычно { status: <HTTP-код> }. Если status нет, ядро REST часто отдаёт 500.

object
key
additional properties
any
Example
{
"code": "wp2lms_static_builder_busy",
"message": "Build is currently building and cannot be updated.",
"data": {
"status": 409
}
}

Submit_failed — GFAPI::submit_form вернул не массив и не WP_Error. Либо WP_Error GF без своего status.

Media typeapplication/json
object
code

Машинный код WP_Error (например wp2lms_static_builder_busy, rest_forbidden, invalid_nonce).

string
message

Человекочитаемое сообщение ошибки из PHP / WordPress REST.

string
data

Обычно { status: <HTTP-код> }. Если status нет, ядро REST часто отдаёт 500.

object
key
additional properties
any
Example
{
"code": "wp2lms_static_builder_busy",
"message": "Build is currently building and cannot be updated.",
"data": {
"status": 409
}
}

Unavailable — нет класса GFAPI (плагин Gravity Forms не активен).

Media typeapplication/json
object
code

Машинный код WP_Error (например wp2lms_static_builder_busy, rest_forbidden, invalid_nonce).

string
message

Человекочитаемое сообщение ошибки из PHP / WordPress REST.

string
data

Обычно { status: <HTTP-код> }. Если status нет, ядро REST часто отдаёт 500.

object
key
additional properties
any
Example
{
"code": "wp2lms_static_builder_busy",
"message": "Build is currently building and cannot be updated.",
"data": {
"status": 409
}
}