Evento de plug-in apenas quando a ativação de email

8

Estou apenas referindo os eventos do plugin Joomla User no URL https://docs.joomla.org/Plugin/Events/User/en

onUserLogin
onUserAuthenticate
onUserBeforeSave

Imaginando qual deles me ajudará a fazer alguma coisa somente quando validarem seu endereço de email no link de ativação de Email?

Nota: Durante o período de ativação do E-mail, eu tenho que me conectar a um servidor SOAP e validar alguns itens, e só permitir que ele ative a conta.

Malaiselvan
fonte

Respostas:

3

você pode fazer desta maneira: Você cria um plug-in de usuário (NÃO plug-in de autenticação, este é separado), chamei o meu testwise de "checkmail". Nesse plugin, coloque o retorno de chamada onUserBeforeSave, no qual você pode verificar se a conta está sendo ativada assim:

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
            }
        }
    }
}

Espero que isso ajude =)

[edit]: Ah, eu quase esqueci: Este plugin vai dentro do diretório plugins / user!

pixx
fonte
Obrigado. Eu vou tentar. Devo retornar falso para não ativar o membro em caso de desaprovação?
Malaiselvan 15/01/16
Excluí meu comentário anterior de que isso não funciona - eu tive um bug estúpido. Funciona e funciona muito bem. Obrigado pela dica. :)
Simba