2017-06-05 3 views
1

Ich bin neu in Opencart-Module Entwicklung und versuchen, ein benutzerdefiniertes Modul mit Ereignissen auf OC 2.3.x zu erstellen. Hier ist der Code, den ich habe:Ereignisse in opencart 2.3.x benutzerdefiniertes Modul werden nicht ausgelöst

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); 
    } 
} 

Das Ereignis registriert wird noch nicht ausgelöst wird, wenn ein neues Produkt hinzufügen, bitte, was ich da falsch gemacht?

Antwort

0

Ich bin nicht sicher, dass die Zeichenfolge, die Sie für Argument 3 (fselias/events/add_product) bereitgestellt haben, korrekt ist; es sollte eine Route zu einem Controller sein. Aber was Sie tun können, um dies zu debuggen, ist ein Breakpoint in system/engine/loader.php, wo die Post-Ereignisse ausgelöst werden und sehen, was mit Ihrem Event passiert. Wenn das Ereignis nicht gefunden werden kann, schlägt das System im Hintergrund fehl - das passierte mir, und das Ausführen des Systems im Debugger war die einzige Möglichkeit, es aufzuspüren.

+0

Könnten Sie bitte näher erläutern, wie man "* sieht, was mit Ihrer Veranstaltung passiert *"? –

+0

Wenn Sie im Ladeprogramm einen Haltepunkt festlegen, sehen Sie, wie Ereignisse verarbeitet werden. Zum Beispiel, vielleicht kommt Ihre Veranstaltung nicht dort, oder vielleicht tut es und hat eine Art von Fehler. –

Verwandte Themen