仅在激活电子邮件时发生插件事件


8

我只是在URL https://docs.joomla.org/Plugin/Events/User/en中引用Joomla用户插件事件

onUserLogin
onUserAuthenticate
onUserBeforeSave

只是想知道只有当他们从“电子邮件激活”链接验证其电子邮件地址时,哪个人才能帮助我做些什么?

注意:在激活电子邮件期间,我必须连接到SOAP服务器并验证一些内容,然后才允许他激活帐户。

Answers:


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目录内!


谢谢。我会尝试。如果我在未经批准的情况下不激活会员,我应该返回false吗?
Malaiselvan '16

删除了我先前的评论,认为这行不通-我有一个愚蠢的错误。它确实有效,而且效果很好。谢谢你的提示。:)
Simba
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.