Плагин входа в систему Крючки не работают
Я пытаюсь отправить второе электронное письмо администратору моего сайта, когда пользователь регистрируется.
Я сделал фрагмент postHook, который отправляет электронное письмо, но оно не работает - процесс регистрации работает, как и ожидалось, но я не получил 2-е письмо с крючка.
При тестировании я установил перехват с postHook на preHook и попытался снова - на этот раз форма вообще не обрабатывается - новый пользователь не был создан и электронное письмо для активации не было отправлено. Он даже не перенаправил на submitResourceId.
Итак, я удалил все в моем preHook Snippet, кроме return true;
и попробовал еще раз - все равно ничего.
Похоже, логин вообще не запускает никаких хуков. Понятия не имею почему.
Кто-нибудь сможет предложить какие-либо исправления?
Мой регистрационный фрагмент:
[[!Register?
&submitVar=`registerbtn`
&activationResourceId=`19`
&activationEmailTpl=`lgnActivateEmailTpl`
&activationEmailSubject=`Thanks for Registering!`
&submittedResourceId=`23`
&usergroups=`2`
&validate=`nospam:blank,
username:required:minLength=^6^,
password:required:minLength=^6^,
password_confirm:password_confirm=^password^,
fullname:required,
email:required:email`
&preHooks=`adminEmailHook`
]]
1 ответ
Я делал нечто подобное раньше. Вот мой код:
[[!Register? &postHooks=`sendMessageToAdmin`
Фрагмент sendMessageToAdmin:
<?php
$message = 'Auto message:<br><br>A new user signed up: '.$hook->getValue('fullname') . ', using email address '.$hook->getValue('email').'.';
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY,$message);
$modx->mail->set(modMail::MAIL_FROM,'info@domain.com');
$modx->mail->set(modMail::MAIL_FROM_NAME,'My website');
$modx->mail->set(modMail::MAIL_SENDER,'Auto message from my website');
$modx->mail->set(modMail::MAIL_SUBJECT,'Someone signed up');
$modx->mail->address('to','info@domain.com');
$modx->mail->setHTML(true);
if (!$modx->mail->send()) {
$modx->log(modX::LOG_LEVEL_ERROR,'sendMessageToAdmin: An error occurred while trying to send the email: '.$err);
}
$modx->mail->reset();
/* tell our snippet we're good and can continue */
return true;