Плагин входа в систему Крючки не работают

Я пытаюсь отправить второе электронное письмо администратору моего сайта, когда пользователь регистрируется.

Я сделал фрагмент 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;
Другие вопросы по тегам