HybridAuth - сообщение админу о регистрации

Скажите пожалуйста, каким образом можно получать сообщения о новом пользователе, захожу в пользователи и вижу, что появляются новые, но никаких сообщений на почту не приходит, а хотелось бы вести статистику регистраций. Есть ли такой функционал в этом дополенении? Большое спасибо.
Елена
27 апреля 2015, 10:45
modx.pro
3
2 066
0

Комментарии: 22

Наумов Алексей
27 апреля 2015, 13:47
0
Вам нужно написать плагин на событие добавления нового пользователя думается мне, и в этом плагине отправлять уведомление.
    Воеводский Михаил
    27 апреля 2015, 14:52
    3
    +1
    Код плагина:

    <?php
    switch ($modx->event->name) {
        case 'OnUserSave':
            $tpl = $modx->getOption('emailTpl',$scriptProperties,'tpl.reg_user');
            if ($mode == 'new') {
                $message = $modx->getChunk($tpl,array_merge($user->toArray(),$user->Profile->toArray()));
                $email = $modx->getOption('admin_email');
                
                $modx->getService('mail', 'mail.modPHPMailer');
                $modx->mail->set(modMail::MAIL_BODY,$message);
                $modx->mail->set(modMail::MAIL_FROM,'noreply@from.ru');
                $modx->mail->set(modMail::MAIL_FROM_NAME,'Сервис уведомлений');
                $modx->mail->set(modMail::MAIL_SUBJECT,'Новый пользователь');
                $modx->mail->address('to',$email);
                $modx->mail->setHTML(true);
                if (!$modx->mail->send()) {
                    $modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$modx->mail->mailer->ErrorInfo);
                }
                $modx->mail->reset();
            }
            break;
    }
      Елена
      28 апреля 2015, 01:13
      0
      Спасибо, я добавила плагин на события OnLoadWebDocument, OnUserSave, может что-то не так делаю, но не приходит письмо с уведомлением регистрации. В самом плагине надо что-то менять, написать где-нибудь свою почту и т.д.? Большое спасибо за помощь.
        Наумов Алексей
        28 апреля 2015, 09:18
        0
        Добавьте системную настройку admin_email с вашей почтой
          Воеводский Михаил
          28 апреля 2015, 09:37
          0
          Помимо системной настройки «admin_email» нужен чанк с именем «tpl.reg_user».
          Названия настройки и чанка могут быть любыми, только не забудьте их поменять в тексте плагина.
            Елена
            29 апреля 2015, 03:35
            0
            Спасибо, все сделала, но, увы, опять ничего не приходит.
            Создала системную настройку — ключ — admin_email, Значение — название ящика. Создала чанк tpl.reg_user с сообщением о регистрации, все назвала, как в плагине. Событие повесила на 'OnUserSave'. Плагин включен… В самом плагине ничего не меняла. Регистрирую нового пользователя в другом браузере, пользователь создается, активируется по емайл, появляется в пользователях, но в ящике — молчание… Что еще можно сделать, что бы письмо приходило…? Наверное, что-то все же делаю не так… Большое спасибо за помощь…
              Воеводский Михаил
              29 апреля 2015, 10:30
              0
              Проверьте, работает ли отправка почты с Вашего сайта, с помощью QuickEmail.
                Елена
                29 апреля 2015, 14:01
                0
                да, проверила, все работает, письмо отправляется, приходит, и обратная связь и почта, все работает на сайте, кроме плагина… непонятно что с этим делать. Спасибо за помощь…
                  Володя
                  29 апреля 2015, 14:03
                  0
                  сейчас я вам помогу…
                  секунду
                    Володя
                    29 апреля 2015, 14:04
                    0
                    joxi.ru/bmobdZ3uq3Ljry
                    Зайти в плагин и на вкладке системные события поставить галочку у OnUserSave и конечно не забыть сохранить.
                      Елена
                      29 апреля 2015, 14:12
                      0
                      да-да, это я сразу сделала
                    Воеводский Михаил
                    29 апреля 2015, 14:06
                    0
                    Вручную укажите значения. Например:
                    $message = 'Message content';
                    $email = 'your@email.';
                    Так работает?
                      Елена
                      29 апреля 2015, 14:23
                      0
                      нет, и так не работает… ох
                        Воеводский Михаил
                        29 апреля 2015, 14:28
                        0
                        Сразу после
                        case 'OnUserSave':
                        Добавьте
                        $modx->log(1,'Плагин уведомления о новом пользователе запущен');
                        Если такой строки не увидите в системном журнале, то разбирайтесь, почему плагин не запускается.

                        Сам плагин рабочий, скопирован с действующего проекта.
                          Елена
                          29 апреля 2015, 14:49
                          0
                          Появляются вот такие строки в журнале —
                          [2015-04-29 14:43:36] (ERROR @ /assets/components/office/action.php) Плагин уведомления о новом пользователе запущен
                          [2015-04-29 14:43:36] (ERROR @ /assets/components/office/action.php) Плагин уведомления о новом пользователе запущен
                          [2015-04-29 14:43:52] (ERROR @ /index.php) Плагин уведомления о новом пользователе запущен
                          [2015-04-29 14:43:52] (ERROR @ /index.php) Плагин уведомления о новом пользователе запущен
                          ERROR @ /index.php — это и говорит об ошибке?
                            Воеводский Михаил
                            29 апреля 2015, 15:03
                            0
                            Это говорит только о том, что сообщение выводится на уровне ошибок.

                            Измените строку:
                            $modx->log(1,'Плагин уведомления о новом пользователе запущен. Режим изменения пользователя: '.$mode);
                            Елена
                            29 апреля 2015, 15:19
                            0
                            Изменила. Вот такая история в логе:
                            [2015-04-29 15:15:08] (ERROR @ /connectors/index.php) Could not get table class for class: modAccess
                            [2015-04-29 15:15:08] (ERROR @ /connectors/index.php) Could not get table name for class: modAccess
                            [2015-04-29 15:15:08] (ERROR @ /connectors/index.php) Error 42000 executing statement:
                            Array
                            (
                            [0] => 42000
                            [1] => 1064
                            [2] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS `modAccess` WHERE `modAccess`.`principal` = 48' at line 1
                            )

                            [2015-04-29 15:15:31] (ERROR @ /assets/components/office/action.php) Плагин уведомления о новом пользователе запущен. Режим изменения пользователя: new
                            [2015-04-29 15:15:31] (ERROR @ /assets/components/office/action.php) An error occurred while trying to send the email: Неверный адрес отправителя: noreply@from.ru: MAIL FROM command failed,553,5.7.1 Sender address rejected: not owned by auth user.

                            [2015-04-29 15:15:31] (ERROR @ /assets/components/office/action.php) Плагин уведомления о новом пользователе запущен. Режим изменения пользователя: upd
                            [2015-04-29 15:15:31] (ERROR @ /assets/components/office/action.php) Плагин уведомления о новом пользователе запущен. Режим изменения пользователя: upd
                            [2015-04-29 15:16:01] (ERROR @ /index.php) Плагин уведомления о новом пользователе запущен. Режим изменения пользователя: upd
                            [2015-04-29 15:16:01] (ERROR @ /index.php) Плагин уведомления о новом пользователе запущен. Режим изменения пользователя: upd
                            Елена
                            30 апреля 2015, 14:38
                            0
                            увы, дальше не знаю куда копать, не приходит письмо… Очень надеюсь на помощь… Спасибо огромное
                            Воеводский Михаил
                            30 апреля 2015, 14:41
                            0
                            $modx->mail->set(modMail::MAIL_FROM,'noreply@from.ru');
                            Очень похоже, что отправка осуществляется через SMTP.
                            Поставьте реальный адрес отправителя.
                            Елена
                            03 мая 2015, 15:09
                            0
                            Супер! Огромное спасибо! Помогло! Реальный адрес вместо noreply@from.ru и сразу же стало приходить сообщение о регистрации! Я очень счастлива. Спасибо всем большое за помощь!
        Серьёзный
        31 августа 2015, 16:01
        0
        А что переписать в плагине, чтобы при авторизации через социальную сеть (создание нового юзера в гибрид стоит ДА) приходило письмо человеку, который регнулся?
          Серьёзный
          31 августа 2015, 16:31
          0
          Спасибо, код плагина вот:
          <?php
          switch ($modx->event->name) {
              case 'OnUserSave':
                  $tpl = $modx->getOption('emailTpl',$scriptProperties,'tpl.reg_user');
                  if ($mode == 'new') {
                      $message = $modx->getChunk($tpl,array_merge($user->toArray(),$user->Profile->toArray()));
                      $email = $modx->getOption('admin_email');
                      
                      $modx->getService('mail', 'mail.modPHPMailer');
                      $modx->mail->set(modMail::MAIL_BODY,$message);
                      $modx->mail->set(modMail::MAIL_FROM,'noreply@from.ru');
                      $modx->mail->set(modMail::MAIL_FROM_NAME,'Сервис уведомлений');
                      $modx->mail->set(modMail::MAIL_SUBJECT,'Новый пользователь');
                      $modx->mail->address('to',$email);
                      $modx->mail->setHTML(true);
                      if (!$modx->mail->send()) {
                          $modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$modx->mail->mailer->ErrorInfo);
                      }
                      $modx->mail->reset();
                  }
                  break;
          }
          на что нужно заменить admin_email чтобы туда вставлялся email человека, который регнулся?

          Заранее благодарю!
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            22