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

Действия и фильтры

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) Как долго может работать один запрос импорта или миграции до передачи управления и продолжения следующим запросом

Административное приложение представляет собой одностраничное приложение на 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 Удаление этого редактора