При создании заказа в системе 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» путём перебора свойств заказа в цикле.