Действия и фильтры
PrimoCRM предоставляет действия WordPress (события, на которые можно реагировать) и фильтры
(значения и реестры, которые можно изменять). Все хуки используют префикс primocrm_.
Сама PrimoCRM не содержит платную часть или проверки лицензий. Всё, что добавляет Pro-аддон, он добавляет через хуки на этой странице, поэтому всё, что может Pro, может и ваш собственный плагин.
Хуки действий (события)
Заголовок раздела «Хуки действий (события)»Реагируйте на них с помощью add_action.
Жизненный цикл контакта
Заголовок раздела «Жизненный цикл контакта»| Хук | Аргументы | Вызывается, когда |
|---|---|---|
primocrm_contact_created |
$contact_id |
Контакт создан |
primocrm_contact_updated |
$contact_id, $changed_keys |
Контакт обновлен ($changed_keys – это имена измененных полей) |
primocrm_contact_deleted |
$contact_id, $email |
Контакт удален (адрес передается, так как строка уже удалена) |
primocrm_contact_status_changed |
$contact_id, $new_status, $old_status |
Статус контакта изменяется |
primocrm_contact_unsubscribed |
$contact_id |
Контакт отменяет подписку |
primocrm_contact_resubscribed |
$contact_id |
Контакт возобновляет подписку |
primocrm_double_optin_confirmed |
$contact_id |
Контакт подтверждает ссылку Double Opt-In |
primocrm_contact_tag_added |
$contact_id, $tag_id |
Тег применен |
primocrm_contact_tag_removed |
$contact_id, $tag_id |
Тег удален |
primocrm_contact_list_added |
$contact_id, $list_id |
Добавлен в список |
primocrm_contact_list_removed |
$contact_id, $list_id |
Удален из списка |
Взаимодействие и формы
Заголовок раздела «Взаимодействие и формы»| Хук | Аргументы | Вызывается, когда |
|---|---|---|
primocrm_form_submitted |
$form_id, $entry_id, $contact_id, $data |
Форма PrimoCRM обработана |
primocrm_email_opened |
$contact_id, $campaign_id |
Отслеживается открытие письма |
primocrm_email_link_clicked |
$contact_id, $campaign_id, $url |
Нажата отслеживаемая ссылка |
Кампании и шаблоны писем
Заголовок раздела «Кампании и шаблоны писем»Это сторона записи экранов кампаний и шаблонов. Плагин, который добавляет собственные настройки в кампанию, сохраняет их здесь, рядом с кампанией, которую пользователь только что сохранил.
| Хук | Аргументы | Вызывается, когда |
|---|---|---|
primocrm_campaign_saved |
$campaign_id, $request, $is_new |
Кампания создана или обновлена ($request – это WP_REST_Request) |
primocrm_campaigns_deleted |
$campaign_ids |
Одна или несколько кампаний удалены |
primocrm_email_template_saved |
$template_id, $request, $is_new |
Шаблон письма создан или обновлен |
primocrm_health_check_tick |
нет | Запускается пятиминутная проверка работоспособности очереди, готовое место для периодических задач |
Система
Заголовок раздела «Система»| Хук | Аргументы | Вызывается, когда |
|---|---|---|
primocrm_loaded |
$plugin |
Внутри регистрации REST-маршрута. Рукопожатие каталога, а не надежный хук загрузки |
primocrm_automations_paused_for_handlers |
$automation_ids |
Автоматизации были приостановлены, потому что триггер или обработчик действия исчез |
primocrm_automations_resumed_for_handlers |
$automation_ids |
Эти автоматизации были возобновлены, потому что обработчик вернулся |
Пример:
add_action( 'primocrm_contact_created', function ( $contact_id ) { error_log( "New PrimoCRM contact: {$contact_id}" );} );
add_action( 'primocrm_email_link_clicked', function ( $contact_id, $campaign_id, $url ) { // Score the contact, notify a channel, etc.}, 10, 3 );Хуки фильтров (реестры)
Заголовок раздела «Хуки фильтров (реестры)»Они собирают расширяемые элементы. Полные руководства находятся в разделе Расширение PrimoCRM.
| Фильтр | Значение | Назначение |
|---|---|---|
primocrm_automation_triggers |
array | Регистрация или изменение триггеров автоматизации |
primocrm_automation_actions |
array | Регистрация или изменение действий автоматизации |
primocrm_condition_options |
array (fields, operators) |
Добавление полей и операторов конструктора условий |
primocrm_form_field_types |
array (type to class) | Регистрация пользовательских типов полей форм |
primocrm_migration_sources |
array (key to source) | Регистрация поставщиков источников миграции |
primocrm_smart_code_catalog |
array | Добавление элементов в выбор смарт-кодов |
primocrm_smart_codes |
$content, $contact, $context |
Замена собственных смарт-кодов при отрисовке письма |
primocrm_mail_providers |
array (id to descriptor) | Регистрация почтового провайдера API с необходимыми настройками |
primocrm_smtp_send |
$result, $provider, $atts, $settings |
Выполнение отправки для вашего провайдера. Возвращает null, и PrimoCRM возвращается к wp_mail |
primocrm_email_editors |
array (type to descriptor) | Регистрация почтового редактора как типа шаблона |
primocrm_double_optin_sources |
array of keys | Какие источники контактов требуют Double Opt-In |
Запись каталога без зарегистрированного обработчика отображается как недоступная, а не
скрытая, поэтому укажите строку requires_plugin с именем того, что ей требуется. PrimoCRM
показывает это как «Требуется X» и запрещает выбирать такой элемент.
Хуки фильтров (лезвие данных)
Заголовок раздела «Хуки фильтров (лезвие данных)»REST-пайлоуд для одной кампании или шаблона на пути к админ-приложению. Используйте их для отправки собственных полей в пользовательский интерфейс, который вы внедрили через JavaScript-точки ниже.
| Фильтр | Значение | Назначение |
|---|---|---|
primocrm_campaign_response |
$campaign, $campaign_id |
Прикрепление ваших полей к ответу одной кампании |
primocrm_email_template_response |
$template, $template_id |
Прикрепление ваших полей к ответу одного шаблона |
primocrm_pre_send_campaign |
$taken_over, $campaign, $settings, $request |
Возврат WP_REST_Response для полного перехвата отправки. В противном случае PrimoCRM выполняет отправку обычным образом |
primocrm_campaign_sent_elsewhere |
$handled, $campaign |
Возвращает true, если ваш код уже поставил эту кампанию в очередь, поэтому встроенный сборщик очереди пропускает ее |
Брендинг и продвижение
Заголовок раздела «Брендинг и продвижение»| Фильтр | Значение | Назначение |
|---|---|---|
primocrm_brand_name |
string | Имя бренда, отображаемое в админке |
primocrm_brand_menu_icon |
string | Иконка меню администратора |
primocrm_brand |
array | Дескриптор бренда, локализованный для приложения |
primocrm_show_upsell |
bool | Возвращает false, чтобы удалить кнопку «Обновить» из шапки админки. Pro-аддон делает это за вас |
primocrm_upgrade_url |
string | Куда ведет эта кнопка |
primocrm_show_reports_menu |
bool | Возвращает true, когда вы добавляете вкладку через primocrm.reports.tabs, чтобы сайдбар WordPress отображал пункт Отчеты. Выключено по умолчанию, так как без вкладки экрану нечего показывать. Pro-аддон делает это за вас |
Хуки фильтров (поведение и тонкая настройка)
Заголовок раздела «Хуки фильтров (поведение и тонкая настройка)»| Фильтр | Значение | Назначение |
|---|---|---|
primocrm_send_batch_size |
int | Количество писем в пакете воркера кампаний |
primocrm_send_rate_per_hour |
int | Ограничение скорости отправки кампаний |
primocrm_automation_batch_limit |
int | Количество строк в пакете воркера автоматизации |
primocrm_email_body_retention_days |
int | Срок хранения тел отрисованных писем |
primocrm_async_automation_delivery |
bool | Переключение асинхронной доставки писем автоматизации |
primocrm_auto_create_contact_status |
$status, $source |
Статус для контактов, автоматически созданных триггерами или синхронизацией пользователей |
primocrm_require_postal_address |
bool | Требуется ли почтовый адрес перед отправкой кампании |
primocrm_trust_proxy_headers |
bool | Доверять ли прокси-заголовкам для IP-адреса отправителя в формах |
primocrm_migration_step_budget |
float (seconds, default 10) | Как долго может работать один запрос импорта или миграции до передачи управления и продолжения следующим запросом |
Хуки JavaScript (wp.hooks)
Заголовок раздела «Хуки JavaScript (wp.hooks)»Административное приложение представляет собой одностраничное приложение на React, и эти фильтры wp.hooks используются
другим плагином для размещения собственного пользовательского интерфейса внутри него. Отдельных страниц аддонов нет.
Каждый фильтр возвращает дескрипторы с колбэком mount, а не элементы React:
приложение и ваш плагин могут использовать разные версии React, поэтому PrimoCRM
предоставляет узел DOM, в который вы самостоятельно выполняете рендеринг.
| Фильтр | Назначение |
|---|---|
primocrm.settings.tabs |
Добавление вкладки на экран настроек |
primocrm.reports.tabs |
Добавление вкладки в отчеты. Экран отчетов и элемент его меню в приложении существуют только тогда, когда что-то зарегистрировало вкладку; для записи в сайдбаре WordPress также возвращайте true из primocrm_show_reports_menu |
primocrm.campaigns.rowActions |
Добавление действия в строку кампании |
primocrm.campaignCreate.sections |
Добавление раздела к пронумерованному шагу мастера кампаний |
primocrm.campaignDetails.panels |
Добавление панели на экран сведений о кампании |
primocrm.emailEditor.init |
Создание вашего редактора внутри контейнера, который PrimoCRM отрисовывает для вашего типа шаблона |
primocrm.emailEditor.destroy |
Удаление этого редактора |