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 Количество неуникальных адресов получателей.
… код плагина …

Результат работы плагина

Рассылки

Пример кода плагина

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'];
        }
    });
}