首页 > 解决方案 > 如何检测 SilverStripe 4 中的成员组更改

问题描述

我有一个DataExtension会员,MyMemberExtension

我正在尝试使用 onBeforeWrite 和 onAfterWrite in检测用户从一个pending-users组移动到一个组。但是,组更改似乎发生在此处的 onBeforeWrite 之前。public-usersMyMemberExtension

MyMemberExtension我添加了一个$IsPending班级成员。

public function onBeforeWrite()
{
    if ($this->owner->inGroup('pending-users'))
    {
        self::$isPending = true;
    }
}

public function onAfterWrite()
{
    if ($this->owner->inGroup('public-users') and self::$isPending)
    {
        # Moved from the pending to public - send email
    }
}

我也尝试过使用$this->owner->getChangedFields();,但 Groups 不是数组的一部分。

我如何能够检测到用户从 更改pending-userspublic-users

标签: silverstripe-4

解决方案


推荐阅读