Обязательные пользовательские поля и автоматическая регистрация

Что делать, если у вас есть обязательные пользовательские поля для сущности CUser и вы используете автоматическую регистрацию при оформлении заказа через sale.order.ajax ? Как вариант, можно кастомизировать компонент оформления заказа (благо есть наследование компонентов) и внести нужные правки в код оформления заказа, а можно воспользоваться другим решением, без кастомизаций.

Итак, что я предлагаю: на странице оформления заказа (обычно это /personal/order/make/) до подключения компонента одношагового оформления заказа, необходимо определить константу:

define('MAKE_ORDER_PAGE','Y');

Далее, пишем обработчик для события добавления пользователя и в нем вписываем нужное значение. Рассмотрим на примере свойства "Телефон" (не знаю, зачем делали доп.свойство, когда есть штатные, но уже будет так). Значение поля с телефоном можно получить из заполнненных в заказе полей:

$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler('main', 'OnBeforeUserAdd', array('CInit','OnBeforeUserAddHandler'));
class CInit{
	function OnBeforeUserAddHandler(&$arFields){
		if(defined('MAKE_ORDER_PAGE') && MAKE_ORDER_PAGE=='Y'){
			if(isset($_REQUEST['ORDER_PROP_3'])){
				$arFields['UF_PHONE'] = $_REQUEST['ORDER_PROP_3'];
			}
		}
	}
}

Таким образом, получим заполненное обязательное поле.

Количество показов: 4570
31.10.2017

Возврат к списку

Если вам была полезна статья можете отблагодарить автора:
Ethereum:

0x16Df809287333C49D3A237296C6248A6c08702Bc

Разработка сайта

Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...

Сопровождение сайта

Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение

Работы по сайту

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