Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Письма пользователю при добавлении и регистрации

00 голосов
1
При регистрации пользователя, используется шаблон MY_NEW_USER и обработчик для него:
Код
//USER REGISTER
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;
   
}

При добавлении пользователя через админку (галка "Оповестить" не ставится) используется USER_ADD и обработчик для него:

Код
 // USER ADD
AddEventHandler("main", "OnAfterUserAdd", Array("AddUser", "OnAfterUserAddHandler"));
class AddUser
{
     //создаем обработчик события "OnAfterUserAdd"
   function OnAfterUserAddHandler(&$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"];
     $arrSITE = Array("s1");
      CEvent::Send ("USER_ADD", $arrSITE, $toSend);
   }
   return $arFields;
    }
}

И вот, проблема в том, что когда пользователь регистрируется, ему приходит два письма, шаблон MY_NEW_USER и USER_ADD.
Потому что, как я понял, используется и там и там
Код
"main", "OnAfterUserAdd",
Как можно обойти этот момент и решить проблему?
спросил 06 Март, 14 от Evenka (520 баллов)

1 Ответ

00 голосов
Проблему решил. USER_ADD удалил и использую стандартный тип USER_INFO, то есть при добавлении юзера надо поставить галку "Оповестить". А при обновлении его в административной части, использую OnAfterUserUpdate. Теперь вопрос другой. Как передать юзеру пароль, когда я его добавляю в ручную?
ответил 16 Авг, 14 от Evenka (520 баллов)

Похожие вопросы