在 17.6.1 中覆盖 Prestashop 的 CustomerController

Override CustomerController of Prestashop in 17.6.1

我尝试在我的 Prestashop 1.7.6 中添加一个新功能(允许检测自后台以来客户端组的变化)。

我想我必须重写我在 "src /PrestaShopBundle/Controller/Admin/Sell/Customer/CustomerController.php " 的 CustomerController.php 中找到的一个功能。

我如何重载这个控制器,我试图在 "override / controllers / admin" 中创建一个文件,但没有成功....?

提前致谢。

无法覆盖 /src 文件夹中的代码:

Understanding the “src” folder

Overrides

如果要检测客户端组的变化,可以使用钩子actionCustomerBeforeUpdateGroup,它在classes/Customer:

被调用
public function updateGroup($list)
{
    Hook::exec('actionCustomerBeforeUpdateGroup', array('id_customer' => $this->id, 'groups' => $list));
    if ($list && !empty($list)) {
        $this->cleanGroups();
        $this->addGroups($list);
    } else {
        $this->addGroups(array($this->id_default_group));
    }
}

如果覆盖中添加的更改不可见,您必须删除 var/cache/prod/class_index.php 或 var/cache/dev/class_index.php,具体取决于您的环境。不用担心,它会被重新创建。