Как можно сохранить информацию после того, как пользователь зарегистрировался?

Как добавить пользовательское свойство типа список UF_CELL в шаблоне компонента bitrix:main.register?
  • 28 декабря 2023 г. 8:27
Ответы на вопрос 1
Чтобы сохранить информацию после регистрации пользователей, можно использовать обработчик события "OnAfterUserRegister" и добавить необходимую логику в этот обработчик. 

Ниже приведен пример реализации обработчика события:

1. Создайте файл "init.php" в папке bitrix/php_interface/ со следующим содержимым:

```php
<?php
AddEventHandler("main", "OnAfterUserRegister", "CustomAfterUserRegisterHandler");

function CustomAfterUserRegisterHandler(&$arFields)
{
    // Получаем ID только что зарегистрированного пользователя
    $user_id = $arFields["USER_ID"];

    // Здесь можно добавить вашу логику сохранения информации о пользователе
    // Например, добавим пользовательское свойство типа список UF_CELL
    $user = new CUser();
    $user->Update($user_id, array("UF_CELL" => ["Значение1", "Значение2"]));
}
```

2. В публичной части сайта разместите компонент bitrix:main.register с необходимыми полями, включая пользовательское свойство типа список UF_CELL:

```xml
<bitrix:main.register>
    <input type="text" name="USER_NAME" value="" />
    <input type="text" name="USER_LAST_NAME" value="" />
    <input type="email" name="USER_EMAIL" value="" />
    
    <SelectMultiple id="UF_CELL" name="UF_CELL[]" size="5">
        <option value="Значение1">Значение1</option>
        <option value="Значение2">Значение2</option>
        <option value="Значение3">Значение3</option>
    </SelectMultiple>
    
    <input type="submit" name="register_submit_button" value="Зарегистрироваться" />
</bitrix:main.register>
```

Обратите внимание, что компонент bitrix:main.register использует ядро Битрикс для регистрации пользователей, поэтому для сохранения пользовательского свойства UF_CELL, мы обновляем информацию о пользователе после его регистрации с использованием метода Update класса CUser.
Похожие вопросы