Hallo Shopware-Gemeinde, nachdem ich mich jetzt durch alle erdenklichen (meist auf SW4 basierten) Plugin-Dokus und Beispiele gearbeitet habe, hoffe ich, ihr könnt mir auf die Sprünge helfen. Zur zeit gibt es auf dem Event $this-\>subscribeEvent( 'Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Account', 'notifyAddressChange' );
eine Methode notifyAddressChange, die anhand der unten aufgeführten URI verschiedene Mail-Texte generiert: “saveShipping/sTarget/account” “saveShipping/sTarget/account” “success/shipping” “success/billing” Dabei wird die Methode, nachdem ein Nutzer seine Liefer- oder Rechnungsadresse ändert, 2x aufgerufen - zuerst das \_POST für die URI "saveShipping/sTarget/account", anschließend für die URI "success/shipping". Ich versuche nun seit einiger Zeit, beim ersten Aufruf des _POST im Plugin eine Variable (Pur PHP oder per $view->assign) zur Verfügung zu stellen, die beim zweiten Aufruf der Plugin-Methode vorhanden + auslesbar ist. Als Pseudo-Code: if(strstr($uri, "saveShipping/sTarget/account") ) { // erster Aufruf $daten = "Meine Daten"; // oder $view-\>assign('daten','Meine Daten'); } else if(strstr($uri, "success/shipping")) { // zweiter ... // $daten / $view-\>daten ? }
Nach meinem aktuellen Verständnis muss ich beim ersten Aufruf der Methode einen manuellen forward / redirect inklusive der Variable auf $subject-\>forward('index', 'account', 'frontend', array('meineDaten' =\> $daten)); // success & billing/shipping
setzen, scheitere aber leider daran. Oder sollte es ein besserer Ansatz zu sein, mit diesen Hooks zu arbeiten (habe bisher leider nur mit den normalen Events Erfahrung gesammelt…)? $this-\>subscribeEvent( 'sAdmin::sUpdateBilling::after', 'mymethod' ); $this-\>subscribeEvent( 'sAdmin::sUpdateShipping::after', 'mymethod' );
Ich danke für eure Gedanken dazu! Christian