Создаем готовую рассылку

Урок 224 из 362
Автор: Александр Суворов
Сложность урока:
4 уровень - сложно, требуется сосредоточится, внимание деталям и точному следованию инструкции.
4 из 5
Просмотров: 3504
Ограничения по редакциям: Старт

Готовая рассылка - это набор писем и настроек

Примечание:
  1. Все примеры упакованы в архив.
  2. Распакуйте его, затем папку sender скопируйте в /bitrix/php_interface/.
  3. Далее в init.php подключите пример:
    include_once($_SERVER['DOCUMENT_ROOT'] . "/bitrix/php_interface/sender/handlers.php");
    


Из готовой рассылки можно создать на сайте рассылку.

Если у вас есть полезная рассылка, которая пригодится и на других сайтах, то можно сделать готовую рассылку - она будет всегда доступна как шаблон.


Для создания готовой рассылки нужно:

  1. Cделать обработчик события OnPresetMailingList, в котором вернуть массив, описывающий рассылку.

    Ключи массива:

    • TYPE - название раздела готовых рассылок при показе.
    • CODE - уникальный символьный код рассылки.
    • DESC - описание для пользователя в административной части сайта, показывается в списке готовых рассылок.
    • NAME - название рассылки.
    • DESC_USER - описание для получателя, которое выведется при отписке.
    • CHAIN - массив, описывающий письма:
      • TIME_SHIFT - через сколько отправить письмо в минутах.
      • SUBJECT - тема письма.
      • MESSAGE - тело письма, может содержать html, теги персонализации, php-код.
    • TRIGGER - массив, описывающий триггер запуска и его настройки, триггер цели и его настройки.
      • MODULE_ID - модуль триггера.

        Триггер становится доступным для использования, если название его класса сообщается в обработчике OnTriggerList.

        Если обработчик OnTriggerList установлен функцией AddEventHandler, то MODULE_ID не указывается.

        Если функцией RegisterModuleDependences - то в MODULE_ID указывается тот же модуль.

      • CODE - код триггера, обязателен для указания.
      • FIELDS - массив предустановленных настроек триггера.
  2. Далее пример рассылки из трех писем, отправляемых через сутки каждое. Запускается по нашему новому триггеру просмотренных товаров. Целью является оплата заказа. Так как триггер находится в модуле sale, то модуль будет указан:
    AddEventHandler("sender", "OnPresetMailingList", array("MySenderEventHandler", "onPresetMailingList"));
    
    class MySenderEventHandler
    {
        public static function onPresetMailingList()
        {
            $result = array();
    
            $result[] = array(
                'TYPE' => 'Мои рассылки',
                'CODE' => 'my_sale_view_prod',
                'NAME' => 'Пример',
                'DESC_USER' => 'Это автоматическая рассылка, предлагающая скидки, если вы просмотрели товар, но не решились купить его.',
                'DESC' => 'Рассылка, запускаемая через день для тех, кто просмотрел на сайте товары.',
                'TRIGGER' => array(
                    'START' => array(
                        'ENDPOINT' => array(
                            'MODULE_ID' => '',
                            'CODE' => 'my_viewed_product',
                            'FIELDS' => array('DAYS_VIEW' => 1)
                        )
                    ),
                    'END' => array(
                        'ENDPOINT' => array(
                            'MODULE_ID' => 'sale',
                            'CODE' => 'order_paid',
                            'FIELDS' => array()
                        )
                    ),
                ),
                'CHAIN' => array(
                    array(
                        'TIME_SHIFT' => 0,
                        'SUBJECT' => 'Письмо #1',
                        'MESSAGE' => 'Здравствуйте, #NAME#<br><br>Это письмо #1.',
                    ),
                    array(
                        'TIME_SHIFT' => 1440,
                        'SUBJECT' => 'Письмо #2',
                        'MESSAGE' => 'Здравствуйте, #NAME#<br><br>Это письмо #2.',
                    ),
                    array(
                        'TIME_SHIFT' => 1440,
                        'SUBJECT' => 'Письмо #3',
                        'MESSAGE' => 'Здравствуйте, #NAME#<br><br>Это письмо #3.',
                    ),
                )
            );
    
    
            return $result;
        }
    }
    
  3. Данный код можно добавить в файл /bitrix/php_interface/init.php и готовая рассылка появится в списке.

    Перед выводом готовой рассылки в списке, проверяется зарегистрированы ли указанные триггеры. Если не зарегистрированы, то готовая рассылка не будет показана.



Текст раскрывает тему
Мы стараемся сделать документацию понятнее и доступнее,
и Ваше мнение важно для нас
Нам жаль это слышать… Но мы постараемся быть лучше! Поясните, пожалуйста, свой выбор:

Мы благодарны вам за помощь в улучшении документации.

Курсы разработаны в компании «1С-Битрикс»