在 prestashop 中覆盖 "src" 控制器后台

override "src" controller back office in prestashop

首先,我尝试了与该主题相关的所有问题和答案。此外,我尝试了相关问题并尝试解决但没有成功。所以请仔细阅读我的问题。

我在下面参考了Link这个主题但没有得到解决方案

override-controller-in-prestashop-1-6

prestashop-1-6-controller-override

我想使用我的自定义模块覆盖 prestashopbundle 控制器。

我的自定义模块结构

 - mymodule
      - controllers
         - admin
           - prestashop
      - override
      - views

我想覆盖这个控制器

prestashop/src/prestashopbundle/controller/Admin/sell/Customer/CustomerController.php

我的模块路径

module/mymodule/

谢谢

经过长时间在 Prestashop 的研究之后我得到了最好的解决方案

Prestashop(1.7.*) 说:

As Controllers are not available for override and can be regarded as internal classes, we don’t consider moving a Controller in another namespace as a backward-compatibility break.

Controller and Routing

创建自定义 Hook 后注册我的自定义模块。在自定义钩子中实现功能并完成它:)

 public function hookActionViewCustomers($params)
    {
        $creddit = Configuration::get('Credit_Checkbox_1');
        $customerid =$params['request']->attributes->get('customerId');
        $Status_HTMl =$this->Get_Status_HTML($customerid);
        if(!$creddit)
        {
            // Checkbox Checked
            $ButtonDisable =" <button type=\"submit\" disabled='disabled' title='Not Allow'> Check Status </button>";
        }
        else{
            // Checkbox unChecked
            $ButtonDisable =" <button type=\"submit\" title='Click Get Status'> Check Status </button>";
        }
        return $Status_HTMl.$ButtonDisable;

    }