+7 495 008 8452 пн.-пт. 10:00 – 17:00
Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.


Отправка логина/пароля при создании заказа

Порой не смотря на всякие предупреждения и отговорки, желают, чтобы логин и пароль слался в письме после автоматической регистрации при создании заказа. Доля резона тут есть. Поэтому решение для такого случая - ниже.

Прежде всего идем в почтовое событие SALE_NEW_ORDER и вписываем маркер #PASSWORD#.
Я выбрал такое место:

marker.png

Теперь вставим пару обработчиков:
AddEventHandler('sale', 'OnOrderNewSendEmail', array('CSendOrderPass', 'OnOrderNewSendEmailHandler'));
AddEventHandler('main', 'OnBeforeUserAdd', array('CSendOrderPass', 'OnBeforeUserAddHandler'));
class CSendOrderPass {

   private static $newUserLogin = false;
   private static $newUserPass = false;

   public static function OnBeforeUserAddHandler($arFields) {
      self::$newUserLogin = $arFields['LOGIN'];
      self::$newUserPass = $arFields['PASSWORD'];
   }

   public static function OnOrderNewSendEmailHandler($ID, $eventName, $arFields) {
      if (self::$newUserPass === false) {
         $arFields['PASSWORD'] = '';
      } else {
         $arFields['PASSWORD'] = "\n".'Ваш логин: '.self::$newUserLogin;
         $arFields['PASSWORD'] .= "\n".'Ваш пароль: '.self::$newUserPass;
      }
   }
}
Суть кода предельно проста - если в это же исполнение происходит добавление пользователя, значит он аворегистрируется, и мы можем отправить его логин/пароль. В ином случае зануляем маркер.

Таким образом, авторизованный пользователь получит обычное письмо без пароля, а только что зарегистрированный вот такое:

pass.png

Назад в раздел

Подписаться на новые материалы раздела:












CAPTCHA