Основные функции по добавлению пользователя, о которых вы могли не знать.
Как создать нового пользователя в Битрикс при помощи API
Для этого будем использовать $user->Add:
// Добавляем нового пользователя $str = 'new_'.randString(8); $user = new CUser; $arFields = Array( "EMAIL" => $str."@site.ru", "LOGIN" => $str."@site.ru", "ACTIVE" => "Y", "GROUP_ID" => array(6,10), "PASSWORD" => $str, "CONFIRM_PASSWORD" => $str, ); $ID = $user->Add($arFields); if (intval($ID) > 0) { $USER->Authorize($ID); LocalRedirect("/personal/"); } else { echo 'ОШИБКА: '.$user->LAST_ERROR; }
Теперь давайте разбираться:
randString – создаст уникальную строку, которую мы будем использовать для формирования логина, емейла, а также пароля.
$arFields – набор полей
array(6,10) – группы пользователей, в которые входит новый user
$USER->Authorize($ID); – вызываем для мгновенной авторизации нового пользователя
LocalRedirect(“/personal/”); – делаем редирект сразу в личный раздел
Как в Битриксе обновить поля пользователя
Здесь тоже всё очень похоже. Для начала вылавливаем ID пользователя:
function OrderMySave($orderID, $fields, $orderFields){ if ($orderFields['ORDER_PROP'][2]) { $valText = $orderFields['ORDER_PROP'][2]; } if ($valText != false && CUser::GetEmail() != $valText) { $userID = $fields['USER_ID']; $user = new CUser; $fields = Array( "EMAIL" => $valText, "LOGIN" => $valText, ); $user->Update($userID, $fields); } }
$orderFields[‘ORDER_PROP’][2] – тут лежит информация про емейл пользователя
$fields[‘USER_ID’] – тут его id
CUser::GetEmail() – получаем емейл текущего пользователя, и в случае неравенства перезаписываем
Бонус, для тех кто в теме (и для себя на будущее):
“sale”, “OnOrderSave”, “OrderMySave” – но это не самое идеальное событие для таких целей..