2017-06-05 57 views
1

我是Opencart模塊開發的新手,並嘗試使用OC 2.3.x上的事件創建自定義模塊。 這裏是我做的代碼:opencart 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); 
    } 
} 

正在註冊的事件添加新的產品時,卻沒有得到觸發,請我在那裏有什麼錯呢?

回答

0

我不確定您爲參數3(fselias/events/add_product)提供的字符串是否正確;它應該是通向控制器的路線。但是你可以做什麼來調試這個事件,在system/engine/loader.php中設置一個斷點,在這裏觸發事件後,看看事件發生了什麼。如果找不到事件,系統會自動失敗 - 這發生在我身上,並且在調試器中運行系統是我唯一可以追蹤它的唯一方法。

+0

您能否詳細說明一下「*看看您的活動發生了什麼*」? –

+0

如果你在加載器中設置了斷點,你會看到事件是如何處理的。例如,也許你的活動沒有到達那裏,或者它可能會發生某種錯誤。 –