Сверху над шапкой Сверху над шапкой
Размер шрифта
Цвет фона и шрифта
Изображения
Озвучивание текста
Обычная версия сайта
Надёжный интегратор
цифровых решений
+7 (950) 695-32-20
+7 (950) 695-32-20
+7 (953) 271-62-24
E-mail
bussolweb@yandex.ru
Задать вопрос
  • VK
Надёжный интегратор
цифровых решений
  • Портфолио
  • V-blog
  • Новости
  • Частые вопросы
  • Документация
  • ...
    +7 (950) 695-32-20 bussolweb@yandex.ru
    Заказать звонок
    Услуги
    • Продвижение сайтов
      Продвижение сайтов
    • Техническая поддержка сайтов
      Техническая поддержка сайтов
    • Разработка сайтов
      Разработка сайтов
    • B2B-кабинет
      B2B-кабинет
    • Внедрение Битрикс24
      Внедрение Битрикс24
    • Свободный старт для селлеров на WB/Ozon
      Свободный старт для селлеров на WB/Ozon
    Лицензии
    • Лицензии 1С-Битрикс
      Лицензии 1С-Битрикс
    • Лицензии 1С-Битрикс24
      Лицензии 1С-Битрикс24
    • Лицензии Аспро
      Лицензии Аспро
    • Лицензии INTEC
      Лицензии INTEC
    Хостинг
    • Виртуальный хостинг
      • Blog
      • Start
      • Noble
      • Great
    • VIP-хостинг
      • Town
      • City
      • Mega
    • Хостинг для 1С-Битрикс
      • Bitrix-1
      • Bitrix-2
      • Bitrix-3
    Акции
    Компания
    • О компании
    • Ценные бумаги
    • Команда
    • Отзывы
    • Реквизиты
    • Стратегические активы
    Контакты
      Задать вопрос
      Заказать звонок
      Поиск
      Задать вопрос
      Задать вопрос
      • +7 (950) 695-32-20
        • Телефоны
        • +7 (950) 695-32-20
        • +7 (953) 271-62-24
        • Заказать звонок
      • Брянская обл., Брянский р-н, п. Путевка, ул. Рославльская, д. 8
      • bussolweb@yandex.ru
      • Пн. – Пт.: с 10:00 до 19:00
      Главная
      —
      Видео-блог
      —Перехват почтового события в Битрикс и запись данных в логи

      Перехват почтового события в Битрикс и запись данных в логи

      4 июля 2025

      Иногда при отправке письма с сайта необходимо выполнить "под капотом сайта" какие-либо действия...

      Иногда при отправке письма с сайта необходимо выполнить "под капотом сайта" какие-либо действия. Например, при создании нового заказа срабатывает системное почтовое событие SALE_NEW_ORDER, которое отправляет на почту клиенту данные о его заказе. А мы, допустим, хотим при этом отправить данные о заказе еще куда-то: в CRM, в 1С или в Telegramm. Рассмотрим как это можно сделать. Для начала переопределим событие OnBeforeEventSend, привязав к нему выполнение функции postOrder:

      
      AddEventHandler('main', 'OnBeforeEventSend', 'postOrder');
      

      Таким образом перед вызовом события отправки письма будет вызвана функция postOrder. Ниже ее код:

      
      function postOrder($arFields, $arTemplate){
          if($arTemplate["EVENT_NAME"] == "SALE_NEW_ORDER"){
               //Ваш код
          }
      
          return true;
      }
      

      Функция принимает два параметра: 1 - массив полей данных, которые передаются в шаблон письма (в нашем случае данные нового заказа); 2 - массив данных самого шаблона. В данном примере мы проверяем, что шаблон привязан к событию SALE_NEW_ORDER. И если это так, то в теле условия пишем нужный нам код.

      Решим следующую задачу. Пусть на нужно при создании нового заказа записать в логи данные этого заказа. Точнее записать те данные, которые передаются в почтовый шаблон. Тогда функцию postOrder можно записать так:

      
      function postOrder($arFields, $arTemplate){
          if($arTemplate["EVENT_NAME"] == "SALE_NEW_ORDER"){
      	$file = $_SERVER["DOCUMENT_ROOT"]."/app.log";
      	writeLog($arFields,'result',$file);
          }
      
          return true;
      }
      

      В переменную $file помещаем абсолютный путь до файла app.log, в который будут записываться логи. Далее, использую функцию writeLog, поместим массив данных письма $arFields в этот файл. Ниже приведен код функции writeLog:

      
      function writeLog($data, $title = 'logs',$file){
          $log = "\n------------------------\n";
          $log .= date("Y.m.d G:i:s") . "\n";
          $log .= (strlen($title) > 0 ? $title : 'DEBUG') . "\n";
          $log .= print_r($data, 1);
          $log .= "\n------------------------\n";
          file_put_contents($file, $log, FILE_APPEND);
          return true;
      }
      

      В сущности можно было обойтись и без этой функции, а добавление осуществить с помощью стандартной функции file_put_contents. Функция writeLog делает вывод форматированным с дополнительными данными.

      • Комментарии
      Загрузка комментариев...
      Назад к списку
      +7 (950) 695-32-20
      +7 (950) 695-32-20
      +7 (953) 271-62-24
      E-mail
      bussolweb@yandex.ru
      Заказать звонок
      bussolweb@yandex.ru
      Брянская обл., Брянский р-н, п. Путевка, ул. Рославльская, д. 8
      Услуги
      Продвижение сайтов
      Техническая поддержка сайтов
      Разработка сайтов
      B2B-кабинет
      Внедрение Битрикс24
      Свободный старт для селлеров на WB/Ozon
      Лицензии
      Лицензии 1С-Битрикс
      Лицензии 1С-Битрикс24
      Лицензии Аспро
      Лицензии INTEC
      Компания
      О компании
      Ценные бумаги
      Команда
      Отзывы
      Реквизиты
      Стратегические активы
      Политики и согласия
      Публичная оферта
      Политика обработки ПДн
      Согласие на обработку ПДн
      Соглашение об использовании cookie-файлов
      Сведения о направлениях ИТ-деятельности
      Согласие на получение рекламно-информационных материалов
      Пользовательское соглашение
      Условия работы
      © 2021-2026, Центр разработки и внедрения цифровых решений: BUSSOL - решения для бизнеса
      Разработано в
      Поиск по сайту
      Главная Поиск Лицензии Акции Контакты Услуги Новости Отзывы FAQ Компания V-blog Хостинг Портфолио
      • МАКС
      • ВКонтакте
      • Telegram
      • Б24

        Битрикс24
      Задать вопрос
      Напишите нам свой вопрос и мы на него ответим

      Ваше сообщение успешно отправлено!
      Наши специалисты свяжутся с Вами в ближайшее время. Спасибо за интерес к нашим услугам
      \n
      \n