Получить данные раннера
const url = 'https://example.com/wp-json/wp2tutor-forms/form/v1/getRunnerData?id=42';const options = {method: 'GET', headers: {'X-WP-Nonce': '<X-WP-Nonce>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://example.com/wp-json/wp2tutor-forms/form/v1/getRunnerData?id=42' \ --header 'X-WP-Nonce: <X-WP-Nonce>'Отдаёт полезную нагрузку, с которой раннер монтирует форму: HTML-id контейнера, имена window-глобалов для переводов/локали и объект props. Это не пакет /i18n/v1/* и не Gravity Forms: form_id — строка wp2lms-form-{id} записи CPT wp2tutor_form.
Query id обязателен. Право то же, что у update*: edit_post на эту запись (ручка не публичная). Token в запросе нет.
translations_variable / locale_variable — имена JS-глобалов (WP2TutorFormTranslations, WP2TutorFormLocale), не сами словари. Шаблон раннера берёт window[translations_variable][props.runner] и window[locale_variable]. Сами JSON i18n в этом ответе не приходят.
props — снимок формы плюс поля раннера: element (= form_id), language всегда ru_RU, sectionsToSave — уникальные repeatSectionId из definition. Остальное — FormPost::get_props() (id, token, runner, definition, styles, l10n, hooks, trackers, shortcode, захардкоженные results/entries/tier, base64 data, open из query open).
Cookie + X-WP-Nonce или Application Password.
Authorizations
Заголовок раздела «Authorizations»Parameters
Заголовок раздела «Parameters»Query Parameters
Заголовок раздела «Query Parameters»ID записи CPT wp2tutor_form. Не Gravity Forms. PHP приводит к int. Нет записи — 404 post_not_found; не этот CPT — 400 invalid_post_type.
Example
42Responses
Заголовок раздела «Responses»Снимок для раннера: form_id, имена window-глобалов и props.
object
HTML-id контейнера раннера. PHP: 'wp2lms-form-' . FormPost::get_id(). Строка, не число Gravity Forms и не голый post ID.
Имя window-глобала с переводами раннера. Константа FormRunnerAssetsManager::JS_TRANSLATIONS_VAR = WP2TutorFormTranslations. Шаблон: window[translations_variable][props.runner]. Сам словарь в этом ответе не приходит.
Имя window-глобала с пакетом локали. Константа JS_LOCALE_VAR = WP2TutorFormLocale. Шаблон: window[locale_variable]. Содержимое locales/*.json здесь не дублируется.
Полезная нагрузка initWP2TutorForm. PHP: element + FormPost::get_props() + захардкоженный language = ru_RU + sectionsToSave из repeatSectionId в definition.
object
Тот же id, что form_id (wp2lms-form-{id}). Куда раннер монтирует UI.
Числовой ID записи wp2tutor_form (WP_Post->ID).
Текущий md5-снимок (generate_token) — тот же алгоритм, что клиент шлёт в update*.
Текущий UI-раннер из meta runner; если пусто — autoscroll.
PHP всегда отдаёт пустую строку.
Раскодированный JSON post_content (не строка). Структура Tripetto: name, clusters, nodes и т.д.
object
Раскодированная meta styles. Пустая meta — [].
object
Раскодированная meta l10n этой формы. Пустая meta — [].
object
Раскодированная meta hooks. Пустая meta — [].
object
Раскодированная meta trackers. Пустая meta — [].
object
Раскодированная meta shortcode. После create_new: fullPage, width, height, css.
object
PHP всегда true.
PHP всегда 1.
PHP всегда pro.
Base64 JSON-инвентаря переменных Tripetto (Variables::inventory()): ключи user:*, website:*, visitor:*, server:* с description/value. Пустой инвентарь — пустая строка.
Значение $_GET['open'] текущего запроса или null. В REST args не зарегистрировано; появляется в props, если query open передан.
PHP в get_runner_data всегда ставит ru_RU (не get_locale() и не query).
Уникальные непустые repeatSectionId из definition (рекурсивный обход). Нет таких ключей — [].
Example
{ "form_id": "wp2lms-form-42", "translations_variable": "WP2TutorFormTranslations", "locale_variable": "WP2TutorFormLocale", "props": { "element": "wp2lms-form-42", "id": 42, "token": "a1b2c3d4e5f60718293a4b5c6d7e8f90", "runner": "autoscroll", "shareUrl": "", "definition": { "name": "Форма", "language": "ru_RU", "clusters": [] }, "styles": { "display": "inline", "autoFocus": false }, "l10n": {}, "hooks": [], "trackers": [], "shortcode": { "fullPage": false, "width": "", "height": "", "css": "" }, "results": true, "entries": 1, "tier": "pro", "data": "eyJ1c2VyOmxvZ2luIjp7ImRlc2NyaXB0aW9uIjoiLi4uIiwidmFsdWUiOiJhZG1pbiJ9fQ==", "open": null, "language": "ru_RU", "sectionsToSave": [] }}Invalid_post_type — запись не CPT wp2tutor_form; invalid_id — то же в args id; rest_missing_callback_param — нет query id.
object
Код WP_Error этой ручки (invalid_token, empty_token, invalid_json, invalid_runner, invalid_permissions, post_not_found, …).
Человекочитаемый текст из PHP (Invalid token: generated "…", expected "…", Token cannot be empty., Invalid JSON. и т.д.).
Обычно { status: HTTP-код } у WP_Error этих контроллеров.
object
Examplegenerated
{ "code": "example", "message": "example", "data": {}}Не аутентифицирован. WordPress REST: rest_not_logged_in / rest_forbidden. Cookie + X-WP-Nonce или Application Password.
object
Код WP_Error этой ручки (invalid_token, empty_token, invalid_json, invalid_runner, invalid_permissions, post_not_found, …).
Человекочитаемый текст из PHP (Invalid token: generated "…", expected "…", Token cannot be empty., Invalid JSON. и т.д.).
Обычно { status: HTTP-код } у WP_Error этих контроллеров.
object
Examplegenerated
{ "code": "example", "message": "example", "data": {}}Invalid_permissions — нет права edit_post на запись формы. WordPress REST: rest_forbidden / rest_cookie_invalid_nonce.
object
Код WP_Error этой ручки (invalid_token, empty_token, invalid_json, invalid_runner, invalid_permissions, post_not_found, …).
Человекочитаемый текст из PHP (Invalid token: generated "…", expected "…", Token cannot be empty., Invalid JSON. и т.д.).
Обычно { status: HTTP-код } у WP_Error этих контроллеров.
object
Examplegenerated
{ "code": "example", "message": "example", "data": {}}Post_not_found — нет записи с таким id; entity_not_found — FormPost не нашёл запись в сервисе.
object
Код WP_Error этой ручки (invalid_token, empty_token, invalid_json, invalid_runner, invalid_permissions, post_not_found, …).
Человекочитаемый текст из PHP (Invalid token: generated "…", expected "…", Token cannot be empty., Invalid JSON. и т.д.).
Обычно { status: HTTP-код } у WP_Error этих контроллеров.
object
Examplegenerated
{ "code": "example", "message": "example", "data": {}}