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

Данный код помогает собрать все свойства заказа и затем передать в виде строки только те свойства которые заполненны.

AddEventHandler("sale", "OnOrderNewSendEmail", "bxModifySaleMails");
function bxModifySaleMails($orderID, &$eventName, &$arFields)
{
	$arOrder = CSaleOrder::GetByID($orderID);
	$order_props = CSaleOrderPropsValue::GetOrderProps($orderID);
	$orderPropsFormat = '';
	while ($arProps = $order_props->Fetch()) {
		if ($arProps['VALUE']) {
			if ($arProps['ORDER_PROPS_ID'] != 12) {
				$orderPropsFormat .= $arProps['NAME'].":".$arProps['VALUE']."";
			} else {
				$orderPropsFormat .= $arProps['NAME'].":да";
			}
		}
	}
	if ($arOrder = CSaleOrder::GetByID($orderID)) {
		if ($arPaySys = CSalePaySystem::GetByID($arOrder['PAY_SYSTEM_ID'])) {
			$orderPropsFormat .= "Способ оплаты:".$arPaySys["PSA_NAME"]."";
		}
	}
	$arFields["ALL_PROPS"] = $orderPropsFormat;
}

Кроме свойств, также передается способ оплаты. Для свойства с ID = 12 значение выставляется в виде строки “да”.

автор: Dmitriy

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

Email: dmitriyribka@gmail.com

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

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *