Как в письмо с данными о заказе отправляемое покупателю добавить текстовый файл с данными о заказе?

Собственно вопрос в теме, как в письмо с данными о заказе отправляемое покупателю добавить текстовый файл с данными о заказе?
Не пойму куда капать
  • Вопрос задан
  • 135 просмотров
Пригласить эксперта
Ответы на вопрос 2
udjin123
@udjin123
PHP, Golang, React
Почтовые события позволяют прикреплять файлы в письмо, но вмешаться в событие SALE_NEW_ORDER отправки письма о новом заказе вы не можете. Как вариант деактивировать штатное почтовое событие SALE_NEW_ORDER, создать свое и вызывать его прикрепляя файл подписавшись на событие в php_interface на создание заказа, событие из d7 - OnSaleOrderSaved проверять флаг IS_NEW. Документация по нему тут
Ответ написан
@Firsov36
full-stack web developer
Подписываемся на событие OnBeforeEventAdd
(брал из очень старого рабочего кода, вырезая часть кода не для общего обозрения, но идея должна быть понятна)

AddEventHandler("main", "OnBeforeEventAdd", array("NewOrderWithPdf", "OnBeforeEventAddHandler"));

class NewOrderWithPdf
{
    public function OnBeforeEventAddHandler($event, $lid, $arFields)
    {
        if ($event == "SALE_NEW_ORDER" && $arFields['ORDER_ID'] > 0) {
            $arrMailProps["EVENT_NAME"] = $event;
            $arrMailProps["LID"] = $lid;
            $arrMailProps["C_FIELDS"] = $arFields;
            $arrMailProps['FILE'] = [$pathToFile];

            \Bitrix\Main\Mail\Event::send($arrMailProps);

            return false;
        }

        return true;
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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