Перехват почтового события в Битрикс и запись данных в логи
Иногда при отправке письма с сайта необходимо выполнить "под капотом сайта" какие-либо действия. Например, при создании нового заказа срабатывает системное почтовое событие SALE_NEW_ORDER, которое отправляет на почту клиенту данные о его заказе. А мы, допустим, хотим при этом отправить данные о заказе еще куда-то: в CRM, в 1С или в Telegramm. Рассмотрим как это можно сделать. Для начала переопределим событие OnBeforeEventSend, привязав к нему выполнение функции postOrder:
Таким образом перед вызовом события отправки письма будет вызвана функция postOrder. Ниже ее код:
function postOrder($arFields, $arTemplate){
if($arTemplate["EVENT_NAME"] == "SALE_NEW_ORDER"){
//Ваш код
}
return true;
}
Функция принимает два параметра: 1 - массив полей данных, которые передаются в шаблон письма (в нашем случае данные нового заказа); 2 - массив данных самого шаблона. В данном примере мы проверяем, что шаблон привязан к событию SALE_NEW_ORDER. И если это так, то в теле условия пишем нужный нам код.
Решим следующую задачу. Пусть на нужно при создании нового заказа записать в логи данные этого заказа. Точнее записать те данные, которые передаются в почтовый шаблон. Тогда функцию postOrder можно записать так:
В переменную $file помещаем абсолютный путь до файла app.log, в который будут записываться логи. Далее, использую функцию writeLog, поместим массив данных письма $arFields в этот файл. Ниже приведен код функции writeLog:
В сущности можно было обойтись и без этой функции, а добавление осуществить с помощью стандартной функции file_put_contents. Функция writeLog делает вывод форматированным с дополнительными данными.
241519,
Россия,
Брянская область,
поселок Путевка,
улица Рослальская, дом 8, кв.121
Иногда при отправке письма с сайта необходимо выполнить "под капотом сайта" какие-либо действия. Например, при создании нового заказа срабатывает системное почтовое событие SALE_NEW_ORDER, которое отправляет на почту клиенту данные о его заказе. А мы, допустим, хотим при этом отправить данные о заказе еще куда-то: в CRM, в 1С или в Telegramm. Рассмотрим как это можно сделать. Для начала переопределим событие OnBeforeEventSend, привязав к нему выполнение функции postOrder:
Таким образом перед вызовом события отправки письма будет вызвана функция postOrder. Ниже ее код:
function postOrder($arFields, $arTemplate){
if($arTemplate["EVENT_NAME"] == "SALE_NEW_ORDER"){
//Ваш код
}
return true;
}
Функция принимает два параметра: 1 - массив полей данных, которые передаются в шаблон письма (в нашем случае данные нового заказа); 2 - массив данных самого шаблона. В данном примере мы проверяем, что шаблон привязан к событию SALE_NEW_ORDER. И если это так, то в теле условия пишем нужный нам код.
Решим следующую задачу. Пусть на нужно при создании нового заказа записать в логи данные этого заказа. Точнее записать те данные, которые передаются в почтовый шаблон. Тогда функцию postOrder можно записать так:
В переменную $file помещаем абсолютный путь до файла app.log, в который будут записываться логи. Далее, использую функцию writeLog, поместим массив данных письма $arFields в этот файл. Ниже приведен код функции writeLog:
В сущности можно было обойтись и без этой функции, а добавление осуществить с помощью стандартной функции file_put_contents. Функция writeLog делает вывод форматированным с дополнительными данными.
Ошибка выжившего - это когнитивное искажение активно используют всякого рода инфо-цыгане, продавцы всяких тренингов по личностному росту, всякие спикеры по саморазвитию и тому подобное
В современном цифровом мире наличие веб-сайта стало необходимостью для бизнеса. Однако перед предпринимателями часто встает вопрос: создать сайт под ключ или воспользоваться готовым решением
Довольно часто возникает необходимость выводить в публичной части сайта (или не выводить) информацию в зависимости от того авторизован ли пользователь или нет.
Заказать сайт
Авторизация
Восстановление пароля
Для восстановления пароля на указанный вами адрес электронной почты будет выслан новый пароль
Вы успешно зарегистрированы!
На указанный E-mail отправлено письмо со ссылкой для активации учетной записи.
Пароль изменен
На указанный E-mail отправлено письмо с данными для авторизации
Заказать звонок
Оставьте ваши контакты и мы перезвоним вам в ближайшее время
Ваше сообщение успешно отправлено!
Благодарим Вас за обращение в нашу компанию! Мы получили ваше письмо и обязательно рассмотрим его в ближайшее время. Если ваш вопрос срочный, вы можете позвонить нам прямо сейчас по номеру: +7 953 271-62-24
Мы ценим ваше время и приложим максимум усилий, чтобы оперативно решить поставленную задачу!
С уважением,
Команда «BUSSOL»
Купить в 1 клик
Укажите ваши данные и мы свяжемся с Вами для уточнения заказа