Как узнать e-mail покупателя по заказу в битрикс?

Как узнать e-mail покупателя по заказу в битрикс?

Узнать e-mail покупателя по заказу в битрикс достаточно редкая задача. Опишу как это сделать.

Почта пользователя битрикс хранится в таблице с пользователями, почта, которую пользователь ввел при оформлении заказа хранится в другом месте. Рассмотрим по порядку:

Как узнать e-mail покупателя по заказу в битрикс?

Разберем работу функции, которая будет получать e-mail покупателя по заказу. В функцию передается параметр - код заказа. Затем, мы бегаем, по свойствам заказа, определяем тип свойства - значение IS_EMAIL должно быть Y, и возвращаем в случае, если нашли свойство типа EMAIL и его значение корректно (функция check_email).

	fetch()) {
				if ($row['IS_EMAIL']=='Y' && check_email($row['VALUE'])) {
					return $row['VALUE'];
				}
			}
			return false;
		}
	?>

Этот код можно дополнить возвратом e-mail из таблицы с пользователями, в случае если по какой-то причине e-mail в заказе отсутствует.

Как получить email текущего пользователя?

fetch()) {
			return $user['EMAIL'];
		}
	}
?>

E-mail текущего пользователя вне заказа получаем c помощью CUser::GetByID.

GetID();
	$rsUser = CUser::GetByID($userId);
        $arUser = $rsUser->Fetch();
        print_r($arUser);
?>

В массиве $arUser найдем e-mail текущего пользователя.

Объединив два фрагмента кода, в итоге получим функцию, с помощью которой можно будет узнать e-mail покупателя по заказу в битрикс и в случае отсутствия получить почту из другого места. Всем удачи и успехов в работе!