HybridAuth - сообщение админу о регистрации
Скажите пожалуйста, каким образом можно получать сообщения о новом пользователе, захожу в пользователи и вижу, что появляются новые, но никаких сообщений на почту не приходит, а хотелось бы вести статистику регистраций. Есть ли такой функционал в этом дополенении? Большое спасибо.
Комментарии: 22
Вам нужно написать плагин на событие добавления нового пользователя думается мне, и в этом плагине отправлять уведомление.
Код плагина:
<?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;
}
Спасибо, я добавила плагин на события OnLoadWebDocument, OnUserSave, может что-то не так делаю, но не приходит письмо с уведомлением регистрации. В самом плагине надо что-то менять, написать где-нибудь свою почту и т.д.? Большое спасибо за помощь.
Добавьте системную настройку admin_email с вашей почтой
Помимо системной настройки «admin_email» нужен чанк с именем «tpl.reg_user».
Названия настройки и чанка могут быть любыми, только не забудьте их поменять в тексте плагина.
Названия настройки и чанка могут быть любыми, только не забудьте их поменять в тексте плагина.
Спасибо, все сделала, но, увы, опять ничего не приходит.
Создала системную настройку — ключ — admin_email, Значение — название ящика. Создала чанк tpl.reg_user с сообщением о регистрации, все назвала, как в плагине. Событие повесила на 'OnUserSave'. Плагин включен… В самом плагине ничего не меняла. Регистрирую нового пользователя в другом браузере, пользователь создается, активируется по емайл, появляется в пользователях, но в ящике — молчание… Что еще можно сделать, что бы письмо приходило…? Наверное, что-то все же делаю не так… Большое спасибо за помощь…
Создала системную настройку — ключ — admin_email, Значение — название ящика. Создала чанк tpl.reg_user с сообщением о регистрации, все назвала, как в плагине. Событие повесила на 'OnUserSave'. Плагин включен… В самом плагине ничего не меняла. Регистрирую нового пользователя в другом браузере, пользователь создается, активируется по емайл, появляется в пользователях, но в ящике — молчание… Что еще можно сделать, что бы письмо приходило…? Наверное, что-то все же делаю не так… Большое спасибо за помощь…
Проверьте, работает ли отправка почты с Вашего сайта, с помощью QuickEmail.
да, проверила, все работает, письмо отправляется, приходит, и обратная связь и почта, все работает на сайте, кроме плагина… непонятно что с этим делать. Спасибо за помощь…
сейчас я вам помогу…
секунду
секунду
joxi.ru/bmobdZ3uq3Ljry
Зайти в плагин и на вкладке системные события поставить галочку у OnUserSave и конечно не забыть сохранить.
Зайти в плагин и на вкладке системные события поставить галочку у OnUserSave и конечно не забыть сохранить.
да-да, это я сразу сделала
Вручную укажите значения. Например:
$message = 'Message content';
$email = 'your@email.';
Так работает?
нет, и так не работает… ох
Сразу после
Сам плагин рабочий, скопирован с действующего проекта.
case 'OnUserSave':
Добавьте $modx->log(1,'Плагин уведомления о новом пользователе запущен');
Если такой строки не увидите в системном журнале, то разбирайтесь, почему плагин не запускается.Сам плагин рабочий, скопирован с действующего проекта.
Появляются вот такие строки в журнале —
[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 — это и говорит об ошибке?
[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 — это и говорит об ошибке?
Это говорит только о том, что сообщение выводится на уровне ошибок.
Измените строку:
Измените строку:
$modx->log(1,'Плагин уведомления о новом пользователе запущен. Режим изменения пользователя: '.$mode);
Изменила. Вот такая история в логе:
[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
[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
увы, дальше не знаю куда копать, не приходит письмо… Очень надеюсь на помощь… Спасибо огромное
$modx->mail->set(modMail::MAIL_FROM,'noreply@from.ru');
Очень похоже, что отправка осуществляется через SMTP.Поставьте реальный адрес отправителя.
Супер! Огромное спасибо! Помогло! Реальный адрес вместо noreply@from.ru и сразу же стало приходить сообщение о регистрации! Я очень счастлива. Спасибо всем большое за помощь!
А что переписать в плагине, чтобы при авторизации через социальную сеть (создание нового юзера в гибрид стоит ДА) приходило письмо человеку, который регнулся?
Спасибо, код плагина вот:
Заранее благодарю!
<?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 человека, который регнулся?Заранее благодарю!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.