Acara plugin hanya ketika aktivasi Email


8

Saya hanya merujuk peristiwa plugin Pengguna Joomla di URL https://docs.joomla.org/Plugin/Events/User/en

onUserLogin
onUserAuthenticate
onUserBeforeSave

Hanya ingin tahu yang mana yang akan membantu saya melakukan sesuatu hanya ketika mereka memvalidasi alamat email mereka dari tautan aktivasi Email?

Catatan: Selama waktu aktivasi Email saya harus terhubung ke server SOAP dan memvalidasi beberapa hal dan kemudian hanya mengizinkannya untuk mengaktifkan akun.

Jawaban:


3

Anda dapat melakukannya dengan cara ini: Anda membuat plugin pengguna (BUKAN plugin otentikasi, yang ini terpisah), saya sebut milik saya testwise "checkmail". Di plugin itu masukkan callback onUserBeforeSave, di mana Anda dapat memeriksa apakah akun diaktifkan seperti ini:

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

Semoga ini bisa membantu =)

[Sunting]: Ah, saya hampir lupa: Plugin ini masuk ke dalam direktori plugin / pengguna!


Terima kasih. Saya akan mencoba. Haruskah saya mengembalikan false untuk tidak mengaktifkan anggota jika tidak disetujui?
Malaiselvan

Menghapus komentar saya sebelumnya bahwa ini tidak berhasil - Saya punya bug bodoh. Itu bekerja, dan itu bekerja dengan baik. Terima kasih atas tipnya. :)
Simba
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.