Документация для разработчиков
Темная тема

OnBeforeUserRegister

Описание и параметры

bool
функция-обработчик(
	array &arArgs
);
Событие "OnBeforeUserRegister" вызывается до попытки регистрации нового пользователя методом CUser::Register и может быть использовано для прекращения процесса регистрации или переопределения некоторых полей.

Примечание: функция будет вызываться также при подтверждении регистрации (событие OnBeforeUserUpdate), где ключа LOGIN нет.

Параметры

ПараметрОписание
arArgs Массив полей регистрации нового пользователя:
  • LOGIN - имя входа пользователя
  • NAME - имя пользователя
  • LAST_NAME - фамилия пользователя
  • PASSWORD - пароль
  • CONFIRM_PASSWORD - подтверждение пароля
  • CHECKWORD - новое контрольное слово для смены пароля
  • EMAIL - EMail пользователя
  • ACTIVE - флаг активности [Y|N]
  • SITE_ID - ID сайта по умолчанию для уведомлений
  • GROUP_ID - массив ID групп пользователя
  • USER_IP - IP адресс пользователя
  • USER_HOST - хост пользователя
На основании массива полей происходит добавление пользователя и отсылка почтового события NEW_USER.

Примечание. Массив значений данного обработчика является ссылкой на исходные переменные. Поэтому при изменении значения параметра или добавлении нового поля в массив внутри обработчика приведет к смене значения исходной переменной поступившей на вход функции-обработчика.
Это позволяет, например, добавить в массив arArgs дополнительные регистрационные поля нового пользователя или поля для почтового события NEW_USER.

if ( isset($args['LOGIN']) && ! preg_match("/^[-a-zA-Z0-9_]+$/", $args['LOGIN']) )

Возвращаемое значение

Для отмены авторизации пользователя и прекращении выполнения метода CUser::Register необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

Примеры

Пример функции-обработчика:

<?
// файл /bitrix/modules/my_module_id/include.php
class MyClass
{
	// создаем обработчик события "OnBeforeUserRegister"
	public static function OnBeforeUserRegisterHandler(&$arFields)
	{
		// если пользователь пришел по рекламной кампании #34, то
		if ($_SESSION["SESS_LAST_ADV_ID"]==34)
		{
			// добавляем его в группу #3
			$arFields["GROUP_ID"][] = 3;    

			// добавим административный комментарий
			if (intval($_SESSION["SESS_ADV_ID"])>0)
				$arFields["ADMIN_NOTES"] = "Рекламная кампания #34 - прямой заход";
			else
				$arFields["ADMIN_NOTES"] = "Рекламная кампания #34 - возврат";

			$arFields["SITE_ID"] = "ru";
		}
	}
}
?>

Пример регистрации функции-обработчика:

<?
// регистрируем обработчик события "OnBeforeUserRegister"
RegisterModuleDependences("main", "OnBeforeUserRegister", "my_module_id", "MyClass", "OnBeforeUserRegisterHandler");
?>


© «Битрикс», 2001-2024, «1С-Битрикс», 2024