Я делаю регистрацию по почте без поля логин, поэтому добавил обработчик, который будет вставлять почту в поле логин, но до этого обработчика даже не доходит, потому что в самом начале функции написать
echo 1; die();
, то все равно выдает ошибку валидации, что поле логин не заполнено
Шаблон
<form method="post" action="<?= POST_FORM_ACTION_URI ?>" name="regform" enctype="multipart/form-data">
<?
if ($arResult["BACKURL"] <> ''):
?>
<input type="hidden" name="backurl" value="<?= $arResult["BACKURL"] ?>"/>
<?
endif;
?>
<div class="bx-form-formgroup-container">
<div class="bx-form-input-container">
<input size="30" type="email" name="REGISTER[EMAIL]" value="<?= $arResult["VALUES"]["EMAIL"] ?>"
autocomplete="off" class="form-control"
placeholder="<?= GetMessage("REGISTER_FIELD_EMAIL") ?>*"/>
</div>
</div>
<div class="bx-form-formgroup-container">
<div class="bx-form-input-container">
<input size="30" type="password" name="REGISTER[PASSWORD]"
value="<?= $arResult["VALUES"]["PASSWORD"] ?>" autocomplete="off" class="form-control"
placeholder="<?= GetMessage("REGISTER_FIELD_PASSWORD") ?>*"/>
</div>
</div>
<div class="bx-form-formgroup-container">
<div class="bx-form-input-container">
<input size="30" type="password" name="REGISTER[CONFIRM_PASSWORD]"
value="<?= $arResult["VALUES"]["CONFIRM_PASSWORD"] ?>" autocomplete="off"
class="form-control" placeholder="<?= GetMessage("REGISTER_FIELD_CONFIRM_PASSWORD") ?>*"/>
</div>
</div>
<div class="bx-form-formgroup-container form-checkbox-container policy-container">
<div class="checkbox">
<label class="checkbox">
<input type="checkbox" id="policy_checkbox" name="policy_checkbox" required value="Y"/>
<div class="text">
<p>
Я согласен <a href="/obrabotka-personalnykh-dannykh">на обработку персональных
данных</a>.
</p>
</div>
</label>
</div>
</div>
<div class="bx-form-formgroup-container">
<input type="submit" name="register_submit_button" value="<?= GetMessage("AUTH_REGISTER") ?>"
class="btn-border"/>
</div>
<div class="form-bottom register">
<div class="bx-form-link-container">
<a href="/account/auth"
rel="nofollow">Уже есть аккаунт</a>
</div>
</div>
</form>
Компонент
<? $APPLICATION->IncludeComponent(
"bitrix:main.register",
"register",
array(
"AUTH" => "Y",
"REQUIRED_FIELDS" => [],
"SHOW_FIELDS" => [],
"SET_TITLE" => "Y",
"SUCCESS_PAGE" => "/account/",
"USER_PROPERTY" => array(
),
"USER_PROPERTY_NAME" => "",
"USE_BACKURL" => "Y",
"COMPONENT_TEMPLATE" => "register"
),
false
); ?>
init.php
AddEventHandler("main", "OnBeforeUserRegister", "OnBeforeUserRegisterHandler");
AddEventHandler("main", "OnBeforeUserUpdate", "OnBeforeUserUpdateHandler");
function OnBeforeUserRegisterHandler(&$arFields)
{
$arFields["LOGIN"] = $arFields["EMAIL"];
return true;
}