Plugin-Ereignis nur bei E-Mail-Aktivierung

8

Ich beziehe mich nur auf die Joomla User Plugin-Ereignisse in der URL https://docs.joomla.org/Plugin/Events/User/en

onUserLogin
onUserAuthenticate
onUserBeforeSave

Sie fragen sich nur, welches mir hilft, etwas zu tun, wenn sie ihre E-Mail-Adresse über den Link zur E-Mail-Aktivierung bestätigen?

Hinweis: Während der E-Mail-Aktivierung muss ich eine Verbindung zu einem SOAP-Server herstellen, einige Dinge validieren und ihm dann nur erlauben, das Konto zu aktivieren.

Malaiselvan
quelle

Antworten:

3

Sie können es so machen: Sie erstellen ein Benutzer-Plugin (NICHT Authentifizierungs-Plugin, dieses ist separat), ich habe mein testwise "checkmail" genannt. Geben Sie in dieses Plugin den Rückruf onUserBeforeSave ein, in dem Sie überprüfen können, ob das Konto folgendermaßen aktiviert wird:

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

Hoffe das hilft =)

[edit]: Ah, ich hätte fast vergessen: Dieses Plugin geht in das Plugins / Benutzerverzeichnis!

pixx
quelle
Vielen Dank. Ich werde es versuchen. Sollte ich false zurückgeben, um das Mitglied im Falle einer Nichtgenehmigung nicht zu aktivieren?
Malaiselvan
Löschte meinen vorherigen Kommentar, dass dies nicht funktioniert - ich hatte einen dummen Fehler. Es funktioniert und es funktioniert großartig. Danke für den Tipp. :)
Simba