Столкнулся с ситуацией когда пользователю необходимо отправить пароль при регистрации, а сейчас в Битриксе это штатными средствами реализовать нельзя.
1. Отключить шаблон почтового события при регистрации пользователя.
2. Создать свой тип события, наприме MY_NEW_USER.
3. Шаблон для этого события.
4. В init.php добавить следующий код.
Два обработчика.
AddEventHandler("main", "OnAfterUserAdd", "OnAfterUserRegisterHandler");
AddEventHandler("main", "OnAfterUserRegister", "OnAfterUserRegisterHandler");
И функцию.
function OnAfterUserRegisterHandler(&$arFields)
{
if (intval($arFields["ID"])>0)
{
$toSend = Array();
$toSend["PASSWORD"] = $arFields["CONFIRM_PASSWORD"];
$toSend["EMAIL"] = $arFields["EMAIL"];
$toSend["USER_ID"] = $arFields["ID"];
$toSend["USER_IP"] = $arFields["USER_IP"];
$toSend["USER_HOST"] = $arFields["USER_HOST"];
$toSend["LOGIN"] = $arFields["LOGIN"];
$toSend["NAME"] = (trim ($arFields["NAME"]) == "")? $toSend["NAME"] = htmlspecialchars('<Не указано>'): $arFields["NAME"];
$toSend["LAST_NAME"] = (trim ($arFields["LAST_NAME"]) == "")? $toSend["LAST_NAME"] = htmlspecialchars('<Не указано>'): $arFields["LAST_NAME"];
CEvent::SendImmediate ("MY_NEW_USER", SITE_ID, $toSend);
}
return $arFields;
}
Если ничего не упустили, то все заработает сразу же.
http://dev.1c-bitrix.ru/community/webdev/user/17138/blog/1740/