在 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
如果要检测客户端组的变化,可以使用钩子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,具体取决于您的环境。不用担心,它会被重新创建。
我尝试在我的 Prestashop 1.7.6 中添加一个新功能(允许检测自后台以来客户端组的变化)。
我想我必须重写我在 "src /PrestaShopBundle/Controller/Admin/Sell/Customer/CustomerController.php " 的 CustomerController.php 中找到的一个功能。
我如何重载这个控制器,我试图在 "override / controllers / admin" 中创建一个文件,但没有成功....?
提前致谢。
无法覆盖 /src
文件夹中的代码:
Understanding the “src” folder
如果要检测客户端组的变化,可以使用钩子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,具体取决于您的环境。不用担心,它会被重新创建。