Php opencart 2.3.x自定义模块中的事件不会触发
我是Opencart模块开发的新手,尝试在OC2.3.x上创建带有事件的自定义模块。 以下是我所做的代码:Php opencart 2.3.x自定义模块中的事件不会触发,php,opencart2.x,opencart-module,opencart2.3,Php,Opencart2.x,Opencart Module,Opencart2.3,我是Opencart模块开发的新手,尝试在OC2.3.x上创建带有事件的自定义模块。 以下是我所做的代码: class ControllerExtensionModuleFSElias extends Controller { public function install() { $this->load->model('extension/event'); $this->model_extension_event->add
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);
}
}
正在注册事件,但添加新产品时未触发事件,请询问我在其中做错了什么?我不确定您为参数3(
fselias/events/add_product
)提供的字符串是否正确;这应该是通往控制器的路线。但要调试它,您可以在system/engine/loader.php
中设置一个断点,触发post事件并查看事件发生了什么。如果找不到事件,系统会无声地失败——这发生在我身上,在调试器中运行系统是我跟踪它的唯一方法 我不确定您为参数3(fselias/events/add_product
)提供的字符串是否正确;这应该是通往控制器的路线。但要调试它,您可以在system/engine/loader.php
中设置一个断点,触发post事件并查看事件发生了什么。如果找不到事件,系统会无声地失败——这发生在我身上,在调试器中运行系统是我跟踪它的唯一方法 能否请您详细说明如何“看到事件发生了什么”?如果您在加载程序中设置断点,您将看到事件是如何处理的。例如,可能您的事件没有到达那里,或者它确实到达并且有某种错误。请您详细说明如何“看到您的事件发生了什么”?如果您在加载程序中设置断点,您将看到事件是如何处理的。例如,可能您的事件没有到达那里,或者它确实到达了那里并且有某种错误。