Evento plug-in solo quando l'attivazione e-mail


8

Sto solo facendo riferimento agli eventi del plugin utente Joomla nell'URL https://docs.joomla.org/Plugin/Events/User/en

onUserLogin
onUserAuthenticate
onUserBeforeSave

Ti chiedi quale mi aiuterà a fare qualcosa solo quando convalidano il loro indirizzo e-mail dal link di attivazione e-mail?

Nota: durante l'attivazione dell'email devo collegarmi a un server SOAP e convalidare alcuni elementi e quindi permettergli solo di attivare l'account.

Risposte:


3

puoi farlo in questo modo: crei un plugin utente (NON plugin di autenticazione, questo è separato), ho chiamato il mio testwise "checkmail". In quel plugin inserisci il callback onUserBeforeSave, in cui puoi verificare se l'account si sta attivando in questo modo:

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

Spero che questo aiuti =)

[modifica]: Ah, quasi dimenticavo: questo plugin si trova nella directory plugin / utente!


Grazie. Cercherò. Devo restituire false per non attivare il membro in caso di mancata approvazione?
Malaiselvan,

Ho cancellato il mio precedente commento che non funziona - ho avuto un bug stupido. Funziona e funziona benissimo. Grazie per il consiglio. :)
Simba,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.