Задать вопрос
@Franked

Как переопределить класс Notify в папке local (или кастомизировать свои оповещения) в Битрикс:Управление сайтом?

Здравствуйте!

У меня стоит задача отправлять дополнительные (свои собственные данные) по почтовому шаблону клиенту, сделавшему заказ. Как сделать так, чтобы я мог подставлять в письмо свои данные (допустим: местоположение выбранного пользователем склада), помимо всех остальных стандартных?

** Мои догадки: **
Я так понимаю, при оформлении заказа, вызывается класс Notify (лежит по адресу: /bitrix/modules/sale/lib/notify.php), который, в зависимости от вызванного почтового события собирает необходимые данные и отправляет методом Send на почту (проверял, пробовал изменить некоторые данные - работает). И как я понял, для решения данной задачи мне необходимо переопределить класс Notify в папке local и кастомизировать те шаблоны, что мне нужны (дабы не трогать родной notify.php). Но проблема в том, что у меня почему-то он не переопределяется и используется похоже тот, что лежит в папке bitrix а не в моей local.., хотя поместил файл вроде правильно..(по адресу: /local/modules/sale/lib/notify.php), и изменил namespace Bitrix\Sale; на: namespace Local\Sale; , но почему-то всеравно не реагирует...

Скажите пожалуйста, что можно предпринять?
  • Вопрос задан
  • 758 просмотров
Подписаться 1 Средний 1 комментарий
Решения вопроса 2
gromdron
@gromdron
Работаю с Bitrix24
Скажите пожалуйста, что можно предпринять?


Для начала: классы нельзя переопределять - только модули, но это не вариант от слова "совсем".

Для решения вашей задачи легальные способы:
- Модифицировать отправляемый почтовый шаблон и добавить в него php-код для получения нужно информации
- На событии onBeforeEventAdd / onBeforeEventSend дописывать нужные данные в почтовый шаблон
- Отключить стандартные уведомления и на событиях самому отправлять уведомления.

Выбирайте способ которым хотите воспользоваться сами :)
Ответ написан
@eugenezadorin
Посмотрите в сторону обработчиков событий.

Думаю что в вашем случае проще всего будет подписаться на событие OnBeforeEventSend (название точно не помню, гуглите).

В обработчике события доступен тип отправляемого письма и все данные для его формирования. Этого достаточно, чтобы выбрать из базы дополнительную информацию и направить ее в почтовый шаблон.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы