bxSender - логируем email сообщения заказов minishop
Добавил небольшой, но в тоже время полезный инструменты для записи email сообщений которые отправляются при смене статуса minishop2.
Приложение умеет фиксировать кому отправляется письмо: менеджеру или пользователю и с каким статусом.
В настройках достаточно включить параметры minishop2_status_change чтобы все сообщения из minishop2 проходили через bxSender.
После включения в окне заказа мы увидим наши сообщения, а так же можем посмотреть их содержимое и состоянию отправки.
В списке сообщений отображается:
Статистику по отправке сообщений вы можете все так же посмотреть в разделе компонента Отчеты рассылок
Добавлена настройка bxsender_do_not_send_messages — при включении, сообщения будут попадать в очереди, и не будет отправлять на e-mail (помогает для тестирования отправки сообщений).
https://modstore.pro/packages/alerts-mailing/bxsender
Немного полезностей:
Чтобы поймать сообщения отправляемые через modx при инициализации, создаем плагин с событием OnMODXInit вешается свой класс сервиса mail
Свой класс bxPHPMailer
Методов словить сообщение в функции send, много, можно просто использовать какой то плейсхолдер, или любую глобальную переменную с помощью которой делать что то с сообщениями.
Приложение умеет фиксировать кому отправляется письмо: менеджеру или пользователю и с каким статусом.
Включение пересылки писем minishop2
В настройках достаточно включить параметры minishop2_status_change чтобы все сообщения из minishop2 проходили через bxSender.
После включения в окне заказа мы увидим наши сообщения, а так же можем посмотреть их содержимое и состоянию отправки.
В списке сообщений отображается:
- Кому — менеджеру или пользователю
- Статус заказа — указывается на каком статусе было отправлено это сообщение
- Состояние отправки — sent — отправлено, error — произошла ошибка во время отправки
- Создан — дата создания сообщения
- Действия — посмотреть сообщение
Статистику по отправке сообщений вы можете все так же посмотреть в разделе компонента Отчеты рассылок
Отключение отправки
Добавлена настройка bxsender_do_not_send_messages — при включении, сообщения будут попадать в очереди, и не будет отправлять на e-mail (помогает для тестирования отправки сообщений).
https://modstore.pro/packages/alerts-mailing/bxsender
Немного полезностей:
Пересылка сообщений
Чтобы поймать сообщения отправляемые через modx при инициализации, создаем плагин с событием OnMODXInit вешается свой класс сервиса mail
<?php
/* @var bxSender $bxSender */
/* @var array $scriptProperties */
switch ($modx->event->name) {
case "OnMODXInit":
$modx->getService('mail', 'bxPHPMailer', MODX_CORE_PATH . 'components/bxsender/model/');
break;
}
Свой класс bxPHPMailer
<?php
if (!class_exists('modPHPMailer')) {
include_once MODX_CORE_PATH . 'model/modx/mail/modphpmailer.class.php';
}
class bxPHPMailer extends modPHPMailer
{
/* @inheritdoc */
public function send(array $attributes = array())
{
/* @var PHPMailer $mailer */
$mailer = $this->mailer;
// Ищем в отправителе текст bxsender чтобы индитифицировать наше сообщение
if (strripos($mailer->From, 'bxsender') !== false) {
// $mailer->From - отправитель
// $mailer->getToAddresses() - список адресов куда пойдет сообщение
// $mailer->Subject - тема сообщения
// $mailer->Body - тело сообщения
// Тут что то делаем с нашим сообщением, и потом поменяем отправителя
$mailer->From = 'Пишем новый email отправителя';
// Или можем вернуть true и уже потом послать сообщение из очереди (можно послать его даже сразу через свой код, главное изменить отправителя)
return true;
}
// и продолжаем посылать сообщение
return parent::send($attributes);
}
}
Методов словить сообщение в функции send, много, можно просто использовать какой то плейсхолдер, или любую глобальную переменную с помощью которой делать что то с сообщениями.
Поблагодарить автора
Отправить деньги