recipients.prepare
Позволяет добавлять получателей рассылки по собственным критериям. См. также описание хука recipients.form.
Доступно начиная с версии 1.0.4.
Рассылки
Входящие параметры (передаются по ссылке)
$params['id'] int ID рассылки.
$params['action'] string Тип действия, при выполнении которого обновляется список получателей, из списка: 'NameAndCountRecipients' (отображение доступных вариантов выбора получателей), 'UpdateDraftRecipientsTable' (отображение уникальных адресов получателей).
$params['recipients'] array Список вариантов выбора получателей. Каждый элемент списка — массив со следующими ключами:
$params[option_id]['id'] int ID варианта.
$params[option_id]['name'] string Название варианта.
$params[option_id]['group'] string Название группы, к которой относится вариант.
$params[option_id]['value'] mixed Обозначение, используемое тем приложением или плагином, которые предоставили вариант.
$params[option_id]['count'] int Количество получателей, доступных при выборе варианта.
$params['recipients_count_not_unique'] int Количество неуникальных адресов получателей.
$params['action'] string Тип действия, при выполнении которого обновляется список получателей, из списка: 'NameAndCountRecipients' (отображение доступных вариантов выбора получателей), 'UpdateDraftRecipientsTable' (отображение уникальных адресов получателей).
$params['recipients'] array Список вариантов выбора получателей. Каждый элемент списка — массив со следующими ключами:
$params[option_id]['id'] int ID варианта.
$params[option_id]['name'] string Название варианта.
$params[option_id]['group'] string Название группы, к которой относится вариант.
$params[option_id]['value'] mixed Обозначение, используемое тем приложением или плагином, которые предоставили вариант.
$params[option_id]['count'] int Количество получателей, доступных при выборе варианта.
$params['recipients_count_not_unique'] int Количество неуникальных адресов получателей.
… код плагина …
Результат работы плагина
Рассылки
Пример кода плагина
PHP
public function recipientsPrepare(&$params)
{
$recipients = &$params['recipients'];
array_walk($recipients, function(&$recipient) use ($params) {
$recipients_value = $recipient['value'];
if (strpos($recipients_value, 'myplugin/') === 0) {
// add option’s contacts data to message log
$message_log_data = mailerMyPluginHelper::getRecipientOptionData($params['id'], $recipients_value);
(new mailerMessageLogModel())->multipleInsert($message_log_data);
// display option’s name and contacts count on the recipients selection page
$recipient_data = mailerMyPluginHelper::getRecipientOptionData($recipient['value']);
$recipient['name'] = $recipient_data['name'];
$recipient['count'] = $recipient_data['count'];
}
});
}









