$args->stop() greift nicht

Hallo zusammen, hänge mich mit folgendem Code an den commitForm-Hook für ein Formular: $this-\>subscribeEvent('Shopware\_Controllers\_Frontend\_Forms::commitForm::before', 'beforeCommitForm'); In der Funktion beforeCommitForm habe ich eine Abfrage die entscheiden soll, ob das Formular, also die entsprechende Mail, gesendet werden darf oder nicht. public function beforeCommitForm(Enlight\_Event\_EventArgs $args){ if (<bedingung>){ $args-&gt;stop(); } }

Beim Debugging kann ich sehen, dass die Bedingung erfüllt ist, wonach er das eigentliche CommitForm-Event nicht weiter ausführen soll. Dies wollte ich durch $args->stop() verhindern. Trotzdem wird der Commit weiter ausgeführt und die Mail versendet. Woran kann dies liegen?

Danke

Hi, die Methode “stop” ist dafür nicht geeignet - die wird eher inter benutzt, bspw. beim notifyUntil-Event. So wie ich das sehe hast du eigentlich nur folgende Möglichkeiten: * mit einem Replace-Hook arbeiten und mit executeParent die Original-Methode ausführen, wenn gewünscht - das kann aber immer zu Kompatiblitätsproblemen mit Plugins führen, die das gleiche machen * dich auf Shopware_Controllers_Frontend_Forms_commitForm_Mail registrieren und da ein Pseudo-Mail-Objekt mit einer “send”-Methode zurück geben, die einfach nur “true” zurück gibt, aber keine Mail versendet - ist ja ein Filter-Event, damit kannst du das Mail-Objekt austauschen. Gruß, Daniel