Мне нужно сделать так, чтобы после быстрой регистрации во время оформления заказа (компонент bitrix:sale.order.ajax) пользователь получал email, где указан его пароль. Это нужно для того, чтобы сократить пользователю время и нервы на придумывание пароля при оформлении заказа.
В файле bitrix/components/bitrix/sale.order.ajax/component.php есть такие строки:
[CODE] if($password_min_length <= 0)
$password_min_length = 6;
$password_chars = array(
"abcdefghijklnmopqrstuvwxyz",
"ABCDEFGHIJKLNMOPQRSTUVWXYZ",
"0123456789",
);
if($arPolicy["PASSWORD_PUNCTUATION"] === "Y")
$password_chars[] = ",.<>/?;:'\"[]{}\|`~!@#\$%^&*()-_+=";
$NEW_PASSWORD = $NEW_PASSWORD_CONFIRM = randString($password_min_length+2, $password_chars);
$user = new CUser;
$arAuthResult = $user->Add(Array(
"LOGIN" => $NEW_LOGIN,
"NAME" => $NEW_NAME,
"LAST_NAME" => $NEW_LAST_NAME,
"PASSWORD" => $NEW_PASSWORD,
"CONFIRM_PASSWORD" => $NEW_PASSWORD_CONFIRM,
"EMAIL" => $NEW_EMAIL,
"GROUP_ID" => $GROUP_ID,
"ACTIVE" => "Y",
"LID" => SITE_ID,
)
);
if (IntVal($arAuthResult) <= 0)
{
$arResult["ERROR"][] = GetMessage("STOF_ERROR_REG").((strlen($user->LAST_ERROR) > 0) ? ": ".$user->LAST_ERROR : "" );
}
else
{
$USER->Authorize($arAuthResult);
if ($USER->IsAuthorized())
{
if($arParams["SEND_NEW_USER_NOTIFY"] == "Y")
CUser::SendUserInfo($USER->GetID(), SITE_ID, GetMessage("INFO_REQ"), true);
}
[/CODE]Хорошо бы вместо CUser::SendUserInfo сделать отправку письма по своему шаблону. Для этого, насколько я понял, мне придётся скопировать целиком весь компонент и модифицировать его, чтобы не потерять код после обновления ядра.
Ещё попробовал вот такой способ [url]http://dev.1c-bitrix.ru/community/webdev/user/17138/blog/1740/[/url] , но он не сработал по каким-то причинам.
Возможно есть ещё более и элегантный простой способ сделать то что я описал.
Как лучше сделать? Посоветуйте.
Спасибо.