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

Используем данное событие, если необходимо добавить недостающих полей.

Как в битриксе добавить свои поля в почтовом событии

Если вы используете систему почтовых событий битрикса, у вас наверняка возникает вопрос как изменить поля или добавить свои. В этом поможет OnBeforeEventAdd.

<?
//Обработчик в файле /bitrix/php_interface/init.php
AddEventHandler("main", "OnBeforeEventAdd", array("MyClass", "OnBeforeEventAddHandler"));
class MyClass
{
    function OnBeforeEventAddHandler(&$event, &$lid, &$arFields)
    {
        $arFields["NEW_FIELD"] = "Новое поле для почтового шаблона";
        $arFields["VS_BIRTHDAY"] = "Изменение существующего поля";
    }
}
?>

На что стоит обратить внимание? В первом параметре, $event, хранится идентификатор события, например:

NEW_ORDER

$lid обсуждать не будем, id сайта с которого вызвано события (пригодится при многосайтовости). Чтобы узнать содержимое $arFields можно использовать AddMessage2Log().

Механизм событий очень полезный, его можно изучать много раз, и всё равно находить в нем что-нибудь новое 🙂 . Желаю вам новых открытий.

Если у вас возникли вопросы связанные с событиями в CMS Битрикс, или на вашем сайте просто необходимо выполнить доработки функционала, обращайтесь.

автор: Dmitriy

З 2011 року займаюся веб-розробкою. Зараз я – PHP Full Stack Developer.
Обговорити ваш проект, а також дізнатися більше про мене ви можете на цьому сайті:
dev.forwww.com

Email: dmitriyribka@gmail.com

3 коментаря

  1. Ваш пост очень помог. Стояла задача: задавать разных получателей в зависимости от выбранных значение radiogrup в форме.
    $arFields[“EMAIL_TO”] = “qqqqq@qqqqq.ru”;
    Спасибо!

  2. Добрый день! Может быть вы мне поможете?
    Создала такой обработчик. Требуется в ссылке выводить символьный код элементов инфоблока. Как его получить в обработчике?

    AddEventHandler(“main”, “OnBeforeEventAdd”, array(“MyClass”, “OnBeforeEventAddHandler”));
    class MyClass
    {
    function OnBeforeEventAddHandler(&$event, &$lid, &$arFields)
    {
    $event = “COMPANY_CREATED”;
    $arFields[“LINK_CODE”] = “/company/’CODE'”;
    }
    }

Залишити відповідь