Плагин событие только при активации электронной почты

8

Я просто ссылаюсь на события плагина Joomla User в URL https://docs.joomla.org/Plugin/Events/User/en.

onUserLogin
onUserAuthenticate
onUserBeforeSave

Просто интересно, кто из них поможет мне сделать что-то, только когда они подтвердят свой адрес электронной почты по ссылке активации электронной почты?

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

Malaiselvan
источник

Ответы:

3

Вы можете сделать это следующим образом: вы создаете плагин пользователя (НЕ плагин аутентификации, этот плагин отдельный), я назвал мой testwise «checkmail». В этот плагин добавьте обратный вызов onUserBeforeSave, в котором вы можете проверить, активируется ли учетная запись следующим образом:

class PlgUserCheckmail extends JPlugin
{
    /**
    * Application object
    *
    * @var    JApplicationCms
    * @since  3.2
    */
    protected $app;

    /**
    * Database object
    *
    * @var    JDatabaseDriver
    * @since  3.2
    */
    protected $db;


    public function onUserBeforeSave($oldUser, $isNew, $newUser)
    {
        if(!$isNew)
        {
            if(isset($oldUser['activation']) &&
               !empty($oldUser['activation']) &&
               isset($newUser['activation']) &&
               empty($newUser['activation']))
            {
                // These commands in here are only triggered if the user is activating his account
            }
        }
    }
}

Надеюсь, это поможет =)

[edit]: Ах, я почти забыл: этот плагин находится внутри директории plugins / user!

Pixx
источник
Спасибо. Я попробую. Должен ли я вернуть false, чтобы не активировать участника в случае неутверждения?
Малайзельван
Удалил мой предыдущий комментарий, что это не работает - у меня была глупая ошибка. Это работает, и это прекрасно работает. Спасибо за совет. :)
Симба