Plugin Upgrade von SW 5.04 auf 5.1 funktioniert nicht

Hallo @all, ich habe ein Problem mit einem kleinen Plugin, dass unter der SW 5.1.x leider nicht aufgerufen wird. Das Plugin soll einen Promotioncode in die Session legen, d.h. je nach parametrisiertem Aufruf wird die Promotion dann bis in das Freitextfeld1 der Bestellung übergeben. Wird kein Parameter angegeben so wird eine Standardpromotion aus der DB übernommen. Bis zur Version 5.0.4 klappte das alles wunderbar. Das ist die bis dato verwendete Funtion install: public function install() { $event = $this-\>createEvent( 'Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Index', 'onPostFrontpage'); $this-\>subscribeEvent($event); $event = $this-\>createEvent( 'Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Listing', 'onPostListing'); $this-\>subscribeEvent($event); $event = $this-\>createEvent( 'Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Detail', 'onPostDetail'); $this-\>subscribeEvent($event); $event = $this-\>createHook( 'sOrder', 'sSaveOrder', 'beforeOrder', Enlight\_Hook\_HookHandler::TypeBefore, 0 ); $this-\>subscribeHook($event); $event = $this-\>createEvent( 'Enlight\_Controller\_Action\_Frontend\_Checkout\_Finish', 'onPostFinish'); $this-\>subscribeEvent($event); $this-\>createForm(); return true; } Da createEvent in der SW 5.1 nicht mehr gültig ist habe ich die Funktion dahingehend geändert: public function install() { $this-\>subscribeEvents(); $this-\>subscribeHooks(); $this-\>createForm(); return true; } protected function subscribeEvents() { $this-\>subscribeEvent('Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Index', 'onPostFrontpage'); $this-\>subscribeEvent('Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Listing', 'onPostListing'); $this-\>subscribeEvent('Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Detail', 'onPostDetail'); $this-\>subscribeEvent('Enlight\_Controller\_Action\_Frontend\_Checkout\_Finish', 'onPostFinish'); } protected function subscribeHooks() { $this-\>subscribeHook( 'sOrder', 'sSaveOrder', 'beforeOrder', Enlight\_Hook\_HookHandler::TypeBefore, 0); } Über den Pluginmanager lässt sich das Plugin installieren (dauert jedoch ungewöhnlich lange) und konfigurieren aber die subribeEvent werden nicht ausgelöst. Das habe ich bereits via Developer Toolbar kontrolliert. Wo könnte das Problem liegen. Btw: Im Logfile wird nichts protokolliert. Vielen Dank im voraus Thomas

Hallo, ich habe das Problem gelöst. subsrcibeHook() wird nicht akzeptiert. Ich habe das jetzt über subscribeEvent() gelöst. public function install() { $this-\>subscribeEvents(); $this-\>createForm(); return true; } protected function subscribeEvents() { $this-\>subscribeEvent('Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Index','onPostFrontpage'); $this-\>subscribeEvent('Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Listing','onPostListing'); $this-\>subscribeEvent('Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Detail','onPostDetail'); $this-\>subscribeEvent('Enlight\_Controller\_Action\_Frontend\_Checkout\_Finish','onPostFinish'); $this-\>subscribeEvent('sOrder::sSaveOrder::before','beforeOrder'); } Ich verstehe nur nicht den Hintergrund, vielleicht kann mir das ja jemand erläutern. Dafür wäre ich echt dankbar. Gruß aus Bayern Thomas Müller-Vellay

[quote=“taurus”] Ich verstehe nur nicht den Hintergrund, vielleicht kann mir das ja jemand erläutern. Dafür wäre ich echt dankbar.[/quote] Hallo, das liegt daran, das $this->subscribeHook() schon lange als deprecated deklariert wurde und nicht mehr verwendet und umgebaut werden soll. Bereits seit Shopware Version 4 sollte man Hooks anders aufrufen, siehe: http://community.shopware.com/Shopware- … html#Hooks . Beste Grüße Sebastian