При создании заказа в системе Bitrix сохраняются множество полей, среди которых так же присутствует поле Email. Конечно мы сейчас говорим о стандартном исполнении формы оформления заказа. Для некоторых задач иногда требуется получить поле – Email покупателя в заказе. В данной заметке мы рассмотрим простой пример получения Email из заказа Bitrix, средствами D7. Нужно понимать, что Email адрес, сохранённый в заказе является свойством, а не полем заказа. Это означает что получить его можно через методы для работы со свойствами заказа. Для получения Email-адреса покупателя существует метод getUserEmail(), к которому следует обращаться посредством объекта – коллекции свойств заказа.
$orderId = 123; // id заказа
// получаем объект заказа
$order = \Bitrix\Sale\Order::load($orderId);
if ($order){
$userEmail = '';
// свойства заказа
$propertyCollection = $order->getPropertyCollection();
// getUserEmail - находит свойство у которого стоит флаг IS_EMAIL
if ($propUserEmail = $propertyCollection->getUserEmail()) {
$userEmail = $propUserEmail->getValue();
} else {
// поиск свойства путём перебора
foreach($propertyCollection as $orderProperty) {
// находим значение по символьному коду
if ($orderProperty->getField('CODE') == 'EMAIL') {
$userEmail = $orderProperty->getValue();
break;
}
}
}
echo '<pre>'; print_r ($userEmail); echo '</pre>';
}
Обратите внимание на то, что для работы с заказами у вас предварительно должен подключаться модуль «sale». Метод getUserEmail() – находит свойство у которого выставлен флаг IS_EMAIL. Другой способ получения Email свойства заказа, это поиск по символьному коду «EMAIL» путём перебора свойств заказа в цикле.