@Airslip

Как убрать обязательность полей, при регистрации с помощью bitrix:sale.order.ajax?

Прошу помощи, 3й день пытаюсь разобраться с задачей. Впервые столкнулся с компонентом bitrix:sale.order.ajax, и на сколько я понял, в нём есть некая авторизация пользователя, перед оформлением заказа. Так вот, изначально в форме регистрации было три поля: имя, фамилия, email, которые обязательны для заполнения. Мне нужно убрать фамилию и email. В шаблоне компонента я убрал эти input-ы,
но это не решило моей проблемы, так как при попытки регистрации, компонент пытается произвести валидацию несуществующих полей и не пускает дальше.
Вопрос: где задаются поля для регистрации в этом компонента?
прикрепляю код вызова компонента:
<?$APPLICATION->IncludeComponent(
	"bitrix:sale.order.ajax", 
	"new_order", 
	array(
		"ALLOW_AUTO_REGISTER" => "N",
		"ALLOW_NEW_PROFILE" => "Y",
		"COMPOSITE_FRAME_MODE" => "A",
		"COMPOSITE_FRAME_TYPE" => "AUTO",
		"COUNT_DELIVERY_TAX" => "N",
		"DELIVERY_NO_AJAX" => "Y",
		"DELIVERY_NO_SESSION" => "Y",
		"DELIVERY_TO_PAYSYSTEM" => "d2p",
		"DISABLE_BASKET_REDIRECT" => "N",
		"ONLY_FULL_PAY_FROM_ACCOUNT" => "N",
		"PATH_TO_AUTH" => "/auth/",
		"PATH_TO_BASKET" => "/personal/basket/",
		"PATH_TO_PAYMENT" => "payment.php",
		"PATH_TO_PERSONAL" => "/personal/",
		"PAY_FROM_ACCOUNT" => "Y",
		"PRODUCT_COLUMNS" => "",
		"PROP_1" => "",
		"PROP_2" => "",
		"SEND_NEW_USER_NOTIFY" => "Y",
		"SET_TITLE" => "Y",
		"SHOW_PAYMENT_SERVICES_NAMES" => "Y",
		"SHOW_STORES_IMAGES" => "N",
		"TEMPLATE_LOCATION" => "popup",
		"USE_PREPAYMENT" => "N",
		"COMPONENT_TEMPLATE" => "new_order",
		"COMPATIBLE_MODE" => "Y",
		"USE_PRELOAD" => "Y",
		"PRODUCT_COLUMNS_VISIBLE" => array(
			0 => "PREVIEW_PICTURE",
			1 => "PROPS",
		),
		"ADDITIONAL_PICT_PROP_26" => "-",
		"BASKET_IMAGES_SCALING" => "standard"
	),
	false
);?>

Копаясь в компоненте, я нашёл файл по адресу "/bitrix/components/bitrix/sale.order.ajax/class.php", в котором около 5000 строк и закомментировал там все строки, где встретил слова email и last_name. После чего, компонент перестал требовать от меня email, но по прежнему требовал фамилию. Но что-то мне подсказывает, что это неправильное решение.
  • Вопрос задан
  • 4263 просмотра
Пригласить эксперта
Ответы на вопрос 3
@flx12
в админке: магазин - свойства заказа
/bitrix/admin/sale_order_props.php?PAGEN_1=1&SIZEN_1=20&lang=ru


найди нужные свойства и убери галку "обязательно"
Ответ написан
@Airslip Автор вопроса
Подозревал что где-то там, но увы, почему-то там именно поле фамилия имеет символьный код не такой как в компоненте и шаблоне(вместо LAST_NAME - FIO). Да и галка "Обязательно" у FIO не желает сниматься.
ca7388beda17.jpg
Ответ написан
@alljefferson
Может кому пригодится
1) Перенести (если не перенесен) компонент sale.order.ajax в папку /local/components/bitrix/ из /bitrix/components/bitrix/.
2) В файле /local/components/bitrix/sale.order.ajax/class.php закомментировать строки (в функции doRegister):
if (strlen($request['NEW_LAST_NAME']) <= 0)
{
	$this->addError(Loc::getMessage('STOF_ERROR_REG_LASTNAME'), self::AUTH_BLOCK);
}

3) В файле шаблоне компонента sale.order.ajax в файле order_ajax.js закомментировать строки (в функции editRegistrationForm):
authFormNodes.push(this.createAuthFormInputContainer(
	BX.message('STOF_LASTNAME'),
	BX.create('INPUT', {
		attrs: {'data-next': 'NEW_EMAIL'},
		props: {
			name: 'NEW_LAST_NAME',
			type: 'text',
			size: 40,
			value: this.result.AUTH.NEW_LAST_NAME || ''
		},
		events: {keypress: BX.proxy(this.checkKeyPress, this)}
	}),
	true
));
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы