sale.order.ajax - новое событие до регистрации пользователя

Рейтинг: 1.1513  
Новая
Предложил Пользователь 209380 19.01.2016 13:28:02

sale.order.ajax - новое событие до регистрации пользователя

Предлагаю создать новое событие для компонента sale.order.ajax, который позволит менять значения массива до создания нового пользователя $user->Add (т.е. для случая !$USER->IsAuthorized() && $arParams["ALLOW_AUTO_REGISTER"] == "Y";) . В частности, не нравится, как сам компонент выбирает логин для пользователя, как он разделяет PAYER_NAME по пробелам и сохраняет в качестве имени и фамилии, а также хотелось бы для пользователей, созданных при оформлении заказа, указывать вместо рандомного пароля определенное значение.

найдено решение:

use Bitrix\Main\EventManager;


EventManager::getInstance()->addEventHandler(
'main',
'OnBeforeUserAdd',
array('UserHandlers', 'OnBeforeUserAddHandler')
);



class UserHandlers {
public static function OnBeforeUserAddHandler(&$arFields)
{
if (isset( $_POST["confirmorder"] ) && ($_POST["confirmorder"] == "Y") )
{
                 if ($_POST["PERSON_TYPE"] == 1 && $_POST["ORDER_PROP_1"] )
$arFields["NAME"] = trim($_POST["ORDER_PROP_1"] ) ;
$arFields["LAST_NAME"] = "";
}
return true;
}
}

Рейтинг: 0  
Пользователь 109495 19.01.2016 14:13:04
Все это можно сделать в обработчике добавления нового пользователя
Рейтинг: 0  
Пользователь 209380 19.01.2016 14:16:55
Ерофеев Анатолий, а как вы собираетесь получить значения $arUserResult, которые в обработчике добавления нового пользователя не доступны (доступны только в самом sale.order.ajax)?
Рейтинг: 0  
Пользователь 390462 19.01.2016 14:17:42
через $_POST
Рейтинг: 0  
Пользователь 209380 19.01.2016 14:21:55
Tre, обработчик нужен только при регистрации во время создания заказа, а через обычные страницы регистрации (где системный компонент) - не нужны.
Рейтинг: 0  
Пользователь 109495 20.01.2016 09:57:22
Отличить регистрацию пользователя при оформлении заказа можно:
1. По характерным переменным в POST-запросе
2. По url'у
Рейтинг: 0  
Пользователь 402732 08.01.2017 08:51:37
Спасибо, то что нужно было
Рейтинг: 0  
Пользователь 402732 08.01.2017 08:51:47
Спасибо, то что нужно было