Добрый день, пытаюсь написать обработчик, чтобы создавался профиль заказа на пользователя при его добавлении через административную часть. Это надо для того, чтобы при создании заказа все через ту же админ. панель автоматически подставлялись нужные поля при выборе этого пользователя. Вот что сейчас есть, но оно не работает.
Код |
---|
<?
AddEventHandler("main", "OnAfterUserAdd", "OnBeforeUserAddHandler");
function OnBeforerUserAddHandler(&$arParams) {
//создаём профиль
//PERSON_TYPE_ID - идентификатор типа плательщика, для которого создаётся профиль
$arProfileFields = array(
"NAME" => "Профиль покупателя (".$arParams['LOGIN'].')',
"USER_ID" => $arParams['ID'],
"PERSON_TYPE_ID" => 1
);
$PROFILE_ID = CSaleOrderUserProps::Add($arProfileFields);
//если профиль создан
if ($PROFILE_ID)
{
//формируем массив свойств
$PROPS=Array(
array(
"USER_PROPS_ID" => $PROFILE_ID,
"ORDER_PROPS_ID" => 3,
"NAME" => "Ваш телефон:",
"VALUE" => $arParams['PERSONAL_PHONE']
),
array(
"USER_PROPS_ID" => $PROFILE_ID,
"ORDER_PROPS_ID" => 1,
"NAME" => "ФИО:",
"VALUE" => $arParams['LAST_NAME'].' '.$arParams['NAME'].' '.$arParams['SECOND_NAME']
),
array(
"USER_PROPS_ID"=>$PROFILE_ID,
"ORDER_PROPS_ID"=>2,
"NAME"=>"Ваш E-mail:",
"VALUE"=>$arParams['EMAIL']
)
);
//добавляем значения свойств к созданному ранее профилю
foreach ($PROPS as $prop)
CSaleOrderUserPropsValue::Add($prop);
}
}
?>
|