PAYONE-GmbH / shopware-5

PAYONE Payment Plugin for shopware 5
MIT License
10 stars 24 forks source link

Replace-Hook wirft unter bestimmten Umständen eine Exception #234

Closed MrMDeluxe closed 6 years ago

MrMDeluxe commented 6 years ago

Hallo,

der Replace-Hook von sGetOrderNumber() verursacht leider Probleme mit anderen Plugins, die diese Funktion im Backend Kontext benutzen. Denn der Zugriff auf Shopware()->Session() funktioniert bekanntlich im Backend nicht. Da die public Core Funktion sGetOrderNumber aber keinen Kontext vorschreibt, sollte der Hook hier die Verantwortung einer Prüfung für den richtigen Kontext haben.

Durch folgende Anpassung des Hooks wird hier der Session Zugriff auf den Frontend Kontext eingeschränkt:

 public function onGetOrderNumber(\Enlight_Hook_HookArgs $args) {

        if(Shopware()->Container()->has('shop')){
            $session = Shopware()->Session();
            $moptRatepayOrdernum = $session->offsetGet('moptRatepayOrdernum');
        }
        if ($moptRatepayOrdernum) {
            return $moptRatepayOrdernum;
        } else {
            // standard behaviour
            $args->setReturn($args->getSubject()->executeParent(
                $args->getMethod(),
                $args->getArgs()
            ));
        }
    }

Wäre super, wenn Ihr den Fix übernehmen könntet.

fjbender commented 6 years ago

Klingt gut, wir prüfen das und übernehmen das dann wahrscheinlich.

fjbender commented 6 years ago

@MrMDeluxe Nur zur Vollständigkeit: Mit welchem Drittplugin können wir diesen Fehler reproduzieren?

rmaassen commented 6 years ago

Premium Gutschriften von Rhiem Intermedia GmbH.

https://store.shopware.com/rhiem20364534336/premium-gutschriften.html

rmaassen commented 6 years ago

@fjbender wie ist denn hier der Status?

fjbender commented 6 years ago

Wir arbeiten noch dran, im Zuge der Analyse ist noch ein andere Bug mit Hooks aufgefallen, den wir gleich mit reparieren wollen.

mediagraphik commented 5 years ago

Wie ist der momentane Status hierzu?

fjbender commented 5 years ago

Sollte eigentlich mit #243 behoben worden sein - wir prüfen allerdings zur Zeit, ob das Problem nach #254 wieder auftritt.