Хуки и JS-события
Плагин расширяется стандартными механизмами WordPress: экшены и фильтры с префиксом elder_quiz_. На фронте квиз генерирует собственные JS-события.
Основные экшены
| Хук | Когда срабатывает |
|---|---|
elder_quiz_result_updated | После каждого сохранения прохождения — сюда подключены письма и все интеграции. Аргументы: объект результата, выполненные действия, изменённые колонки, признак записи в БД. |
elder_quiz_before_result_update | Перед записью прохождения в базу. |
elder_quiz_saved | После сохранения квиза в редакторе. |
elder_quiz_deleted / elder_quiz_before_delete_result | Удаление квиза / строки результата. |
Основные фильтры
| Фильтр | Назначение |
|---|---|
elder_quiz_result_payload | Payload заявки для вебхуков, CRM и экспорта — добавляйте и переименовывайте поля. |
elder_quiz_result_note | Текст заметки для CRM (amoCRM/Битрикс24). |
elder_quiz_telegram_message / elder_quiz_telegram_url | Текст и адрес отправки Telegram-уведомления. |
elder_quiz_amocrm_lead / elder_quiz_bitrix_lead | Данные сделки/лида перед отправкой в CRM. |
elder_quiz_webhook_args | Аргументы HTTP-запроса вебхука (заголовки, таймаут). |
elder_quiz_mail_recipients / elder_quiz_mail_headers / elder_quiz_send_mail | Получатели, заголовки и само право отправки писем. |
elder_quiz_result_variables | Свои переменные %%…%% в текстах результата. |
elder_quiz_result_title / elder_quiz_result_description | Заголовок и описание результата перед выводом. |
elder_quiz_options / elder_quiz_script_params | Опции квиза в data-options и параметры публичного скрипта. |
elder_quiz_meta_fields | Карта полей редактора — добавление собственных полей квизу. |
elder_quiz_template_override_path | Путь переопределения шаблонов в теме. |
elder_quiz_verify_nonce | Отключение проверки nonce на публичном endpoint (для крайних случаев кеширования; по умолчанию проверка включена). |
elder_quiz_reports_capability / elder_quiz_rest_capability | Права на просмотр результатов/аналитики и на REST. |
elder_quiz_export_filename / …_header / …_row / …_max_rows | Тонкая настройка CSV-экспорта. |
elder_quiz_funnel / elder_quiz_question_stats | Данные воронки и статистики вопросов в аналитике. |
elder_quiz_share_providers / elder_quiz_messengers | Списки соцсетей шаринга и мессенджеров формы. |
elder_quiz_allowed_mimes / elder_quiz_file_upload_allowed / elder_quiz_upload_subdir | Типы файлов, право загрузки и каталог загрузок. |
elder_quiz_recaptcha_action / elder_quiz_recaptcha_min_score | Параметры проверки reCAPTCHA. |
elder_quiz_progress_text / elder_quiz_brightness_threshold / elder_quiz_rich_text / elder_quiz_html / elder_quiz_do_output | Косметика вывода: текст прогресса, порог яркости для автопалитры, обработка форматированного текста, финальная разметка, право вывода шорткода. |
elder_quiz_settings_field_config / …_tabs / …_password_fields / …_sanitized | Расширение экрана настроек собственными вкладками и полями. |
Полный список — grep "apply_filters\|do_action" src/ по каталогу плагина.
Пример: своё поле в вебхуке
add_filter( 'elder_quiz_result_payload', function ( $payload, $result ) {
$payload['site'] = home_url();
return $payload;
}, 10, 2 );
JS-события на фронте
Квиз диспатчит события на document; данные — в event.detail:
| Событие | Момент |
|---|---|
elder-quiz:start | Старт прохождения (кнопка «Начать» или первый ответ). |
elder-quiz:next / elder-quiz:prev | Переход между вопросами. |
elder-quiz:confirm | Ответ на вопрос подтверждён. |
elder-quiz:progress | Изменение прогресса (процент в detail). |
elder-quiz:show_contacts / elder-quiz:show_results | Показ формы контактов / экрана результата. |
elder-quiz:before_submit / elder-quiz:submit_contacts | Перед отправкой / после успешной отправки формы. |
elder-quiz:finish | Прохождение завершено. |
elder-quiz:time_expired | Истёк общий таймер квиза. |
document.addEventListener( 'elder-quiz:finish', function ( e ) {
console.log( 'Квиз завершён', e.detail );
} );
Эти же события автоматически уходят целями в Яндекс.Метрику и пиксели.