1

我是 Opencart 模块开发的新手,并试图在 OC 2.3.x 上创建带有事件的自定义模块。这是我做的代码:

class ControllerExtensionModuleFSElias extends Controller
{
    public function install()
    {
        $this->load->model('extension/event');
        $this->model_extension_event->addEvent('fselias', 'admin/model/catalog/product/addProduct/after', 'fselias/events/add_product');
    }

    public function add_product($route, $product_id)
    {
        $this->load->model('sale/order');
        $this->load->model('catalog/product');

        //$product_id - you can get the product id that was recentlt added in this function
        $log = date("F j, Y, g:i a") . ': ' . $route . ': ' . $product_id . PHP_EOL;
        file_put_contents('./products_log_' . date("j.n.Y") . '.txt', $log, FILE_APPEND);
    }
}

该事件正在注册但添加新产品时未触发,请问我在那里做错了什么?

4

1 回答 1

0

我不确定您为参数 3 ( fselias/events/add_product) 提供的字符串是否正确;它应该是到控制器的路由。但是你可以做的调试是在system/engine/loader.php触发发布事件的地方设置一个断点,看看你的事件发生了什么。如果找不到事件,系统会静默失败 - 这发生在我身上,在调试器中运行系统是我可以追踪它的唯一方法。

于 2017-06-18T20:08:56.323 回答