Идеи пользователя Хайруллин Рустем

Рейтинг: 1.1513  
Новая
Предложил Хайруллин Рустем 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;
}
}