[modSendPulse] - Рассылки через SendPulse
Компонент modSendPulse предоставляет возможность интеграции с популярным русскоязычным сервисом Email рассылки SendPulse.
Основная задача текущей версии компонента — управление подписной базой.
Состав компонента:
Предварительная настройка компонента
Сниппет-Хук легко адаптировать под собственные нужды, если Вы не пользуетесь FormIt, а предпочитаете обрабатывать формы используя собственные сниппеты.
Плагин, добавляющий пользователя в адресную книгу при регистрации
Срабатывает на событие OnUserSave. Плагин по умолчанию отключен. Если Вы хотите чтобы пользователь автоматически добавлялся в адресную книгу при регистрации на Вашем сайте — плагин нужно активировать.
Сервис предоставляет возможность отправки подписчику приветственного письма сразу же при добавлении в адресную книгу.
Также можно настроить цепочку писем с целой кучей тригеров, статистикой открываемости и прочей аналитикой.
Причем письмо можно оформить в виде крутого адаптивного шаблона. Нам достаточно лишь добавить подписчика в нужную адресную книгу.
Вы можете создать несколько адресных книг, привязав каждую к определенным действиям.
Попадание в одну адресную книгу — вызовет отправку прайс-листа или презентации
Попадание во вторую адресную книгу — вызовет цепочку писем. и так далее.
Все это вы можете подробнее прочитать на сайте сервиса. Ссылку думаю найдете.
Основная задача текущей версии компонента — управление подписной базой.
Состав компонента:
- Хук для Formit или ajaxForm
- Компактный сниппет для ручной работы
- Плагин срабатывающий при регистрации пользователя на сайте
Предварительная настройка компонента
- Разумеется у Вас должен быть активный аккаунт в сервисе SendPulse и заведена хотя бы одна адресная книга
- Открываем системные настройки, раздел modsendpulse и заполняем три обязательных параметра
- modsendpulse_addressbook_user_create — Номер вашей адресной книги, куда по умолчанию будут добавляться email адреса. Номер можно посмотреть в адресной строке, открыв книгу в сервисе SendPulse
- modsendpulse_client_id — ID из раздела API вашего аккаунта в системе SendPulse
- modsendpulse_client_secret — Secret из раздела API вашего аккаунта в системе SendPulse
- Создайте собственную подписную/контактную форму с уникальным дизайном, и графой E-mail.
- По умолчанию хук ищет поля name и emai. Убедитесь что в форме поля названы именно так.l
- Вызовите форму при помощи FormIt или AjaxForm
- Добавьте к вызову хук modSendPulseHook
- При обработке формы — отправитель добавится в вашу адресную книгу на сервисе SendPulse.
[[!ajaxForm?
&form=`tpl.podpiska`
&hooks=`modSendPulseHook`
&validate=`name:required,email:required:email`
]]Сниппет-Хук легко адаптировать под собственные нужды, если Вы не пользуетесь FormIt, а предпочитаете обрабатывать формы используя собственные сниппеты.
// Вызываем класс
if (!$modsendpulse = $modx->getService(
'modsendpulse',
'modsendpulse',
MODX_CORE_PATH . 'components/modsendpulse/model/modsendpulse/'
)) {
$modx->log(modX::LOG_LEVEL_ERROR, '[modSendPulseHook] - Not found class modsendpulse');
return;
}
//Инициируем (получаем токен для запросов к API)
$modsendpulse->initialize($modx->context->key);
// Получаем email любым удобным способом, по вкусу проводим валидацию
$email = 'test@text.ru';
//Опционально добавляем Имя адресата любым удобным для Вас способом
$name = 'Петя Иванов';
//Получаем номер адресной книги из системных настроек компонента или указываем вручную
$book = $modx->getOption('addressbook_user_create');
// Вызываем метод добавления email в адресную книгу
$params['emails'] = array(
array(
'email' => $email,
'variables' => array(
'name' => $name
)
)
);
$modsendpulse->sendPulseAddEmailsToBook($params, $book);Плагин, добавляющий пользователя в адресную книгу при регистрации
Срабатывает на событие OnUserSave. Плагин по умолчанию отключен. Если Вы хотите чтобы пользователь автоматически добавлялся в адресную книгу при регистрации на Вашем сайте — плагин нужно активировать.
Сервис предоставляет возможность отправки подписчику приветственного письма сразу же при добавлении в адресную книгу.
Также можно настроить цепочку писем с целой кучей тригеров, статистикой открываемости и прочей аналитикой.
Причем письмо можно оформить в виде крутого адаптивного шаблона. Нам достаточно лишь добавить подписчика в нужную адресную книгу.
Вы можете создать несколько адресных книг, привязав каждую к определенным действиям.
Попадание в одну адресную книгу — вызовет отправку прайс-листа или презентации
Попадание во вторую адресную книгу — вызовет цепочку писем. и так далее.
Все это вы можете подробнее прочитать на сайте сервиса. Ссылку думаю найдете.
Комментарии: 34
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
а как сделать так, чтоб еще и на почту уведомление приходило?
На крайний случай вы можете дописать сниппет или плагин (смотря что используется) и настроить отправку почты посредством встроенных в MODX средств отправки почты modMail
сори, за тупые вопросы))
Каким образом вы отправляете рассылку? Через что? Через Formit?
&form=`tpl.podpiska`
&hooks=`modSendPulseHook`
&validate=`email:email:required`
&validationErrorMessage=`В форме содержатся ошибки!`
&successMessage=`Подписка успешно оформлена!`
]]
вот так))
Смотрите типовые настройки FormIt
На каждой странице в вызов Formit вставляйте номер нужной книги в параметр &book.
Не забудьте применить хук sendpulse (это будет сниппет, который нужно создать)
Содержимое примерно такое
По идее такая конструкция должна решить ваш вопрос.
Отдельно создал и скопировал ваш сниппет и дал ему имя sendpulse. При отправке формы указывал разные email, в том числе пробовал Петю Иванова и мыло test@text.ru, однако все равно данные добавляются в основную книгу
Первый уберите, либо уберите второй, а первый подкорректируйте.
Что именно там править? Вот весь код сниппета:
if(!$book = $modx->getOption('modsendpulse_addressbook_user_create')){
$modx->log(1, '[modSendPulseHook] — No book number');
}
$modx->log(1, '[modSendPulseHook] — No book number');
}
Замени на такой вариант
if(!$book){
$book = $modx->getOption('modsendpulse_addressbook_user_create');
}
Это если у тебя в форме нету номера книги, тогда он возьмет стандартную книгу что у тебя в настройках введена.
В стандартном сниппете оно этой строчкой присваивает значение книги из системных настроек и проверяет не пустое ли оно, поэтому и не работает тк оно перезаписывает постоянно значение твое.
Подскажите как от этого избавиться, хотя бы в основном, если не полностью. Например, как сделать валидацию имени, чтобы имена с цифрами не пропускались?
В вызове Formit указываем параметры
Сниппет валидации isUserName:
Может кому пригодится.
&book=`201xxx2,2017xxx1`
Я делаю, чтобы юзер сам выбирал, в какие книги рассылки его добавлять.
В вызове формы добавил &books, куда по идее должны подставляться выбранные книги:
Сама форма
Если в вызове Ajaxform вручную прописываю
&books=`20172xx,20282xx` = улетает все, как нужно.
Если же через чек боксы выбираю (хоть одну, хоть две) ничего не появляется.
Все выбранные чекбоксы просто загоняю в input hidden и уже его передаю в сниппет на обработку, может кому пригодится.
Мне думается, что надо поправить класс-обработчик msOrderHandler, добавив в него что-то на тему:
Сработает или лучше не пытаться?
Нужно использовать систему плагинов. Попробуй создать плагин на событие onUserSave (не уверен, что это событие сработает). Как вариант можно создать плагин на событие msOnCreateOrder, там тоже есть доступ к данным заказчика. И уже оттуда отправлять данные в адресную книгу
Не разобрался пока как в адресную книгу телефон передать.
Сделал так, но почему-то в адресной книге запись не создалась.
Компонент с некоторого времени платный (290 руб) — если не получится — покупай, пиши в поддержку — поковыряем вместе уже более подробно
Реально ли публикуя на сайте новость (отметив ее к примеру чекбоксом) при сохранении запускать плагин, который отправит в Send Puls команду на рассылку контента и картинки (картинка из TV поля) из этой статьи всем подписчикам?
Для твоей задачи — думаю лучше воспользоваться отдельным компонентом, вроде sendex. Но тут в качестве минуса можно отметить то, что не будет возможности отслеживать доставку, открытие писем, как в SendPulse.
Возможно есть решения для сочетания всех идей и преимуществ — я не особо вникал в тему рассылок