@Darklt

Ошибка не указан код пользователя с Битрикс?

Есть событие, которое при отправки формы, регистрирует ещё и пользователя, но я добавил чтобы ещё и создавал профиль по умолчанию. Выдаёт ошибку что не указан код пользователя. При этот пользователь создался. , профиль нет и дальнейших действий не произошло. Вот мой код

function my_onBeforeResultAdd($WEB_FORM_ID, &$arFields, &$arrVALUES)
{
  global $APPLICATION;

  if ($WEB_FORM_ID == 99) 
  {
   $usermail = $arrVALUES['form_text_227'];
   $username = $arrVALUES['form_text_236'];
   $userlogin = $arrVALUES['form_text_238'];
   $userphone = $arrVALUES['form_text_226'];
   $useradress = $arrVALUES['form_text_224'];
   $userpassword = $arrVALUES['form_password_239'];
   $user = new CUser;
   $arUserFields = Array(
     "NAME"              => $username,
     "EMAIL"             => $usermail,
     "LOGIN"             => $userlogin,
     "LID"               => "s1",
     "ACTIVE"            => "N",
     "GROUP_ID"          => array(6,8),
     "PASSWORD"          => $userpassword,
     "CONFIRM_PASSWORD"  => $userpassword,
     "PERSONAL_PHONE"    => $userphone
   );
	  // echo '<pre>';   print_r($arrVALUES); echo '</pre>';
   $ID = $user->Add($arUserFields);
   echo $user->LAST_ERROR;

      //создаём профиль
	 if(isset($arFields['EXTERNAL_AUTH_ID']))
    unset($arFields['EXTERNAL_AUTH_ID']);
      $arProfileFields = array(
         "NAME" => "Профиль покупателя (".$userlogin.')',
         "USER_ID" => $arrVALUES['BX_USER_ID'],
         "PERSON_TYPE_ID" => 3
      ); 
      $PROFILE_ID = CSaleOrderUserProps::Add($arProfileFields);
      
      //если профиль создан
      if ($PROFILE_ID)
      {
         //формируем массив свойств
         $PROPS=Array(
         array(
               "USER_PROPS_ID" => $PROFILE_ID,
               "ORDER_PROPS_ID" => 15,
               "NAME" => "Телефон",
               "VALUE" => $userphone
            ),
			array(
					"USER_PROPS_ID" => $PROFILE_ID,
					"ORDER_PROPS_ID" => 24,
					"NAME" => "Юридический адрес",
					"VALUE" => $useradress
				),
         array(
               "USER_PROPS_ID" => $PROFILE_ID,
               "ORDER_PROPS_ID" => 9,
               "NAME" => "Ф.И.О.",
               "VALUE" => $username
            )
         );
         foreach ($PROPS as $prop)
            CSaleOrderUserPropsValue::Add($prop);
}
    
	}
	
}
AddEventHandler('form', 'onBeforeResultAdd', 'my_onBeforeResultAdd');
AddEventHandler("main", "OnAfterUserRegister", "my_onBeforeResultAdd");
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы