# $args-&gt;stop() greift nicht

**URL:** <https://forum.shopware.com/t/args-gt-stop-greift-nicht/32828>\
**Category:** Programmierung\
**Created:** [7. Dezember 2015 um 15:48 UTC](https://forum.shopware.com/t/args-gt-stop-greift-nicht/32828 "2015-12-07T15:48:33Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![viertypen](https://avatars.discourse-cdn.com/v4/letter/v/a4c791/32.png) [@viertypen](https://forum.shopware.com/u/viertypen)\
**Post date:** [7. Dezember 2015 um 15:48 UTC](https://forum.shopware.com/t/args-gt-stop-greift-nicht/32828/1 "2015-12-07T15:48:33Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![DanielNogel](https://avatars.discourse-cdn.com/v4/letter/d/96bed5/32.png) [@DanielNogel](https://forum.shopware.com/u/DanielNogel)\
**Post date:** [17. Januar 2016 um 18:13 UTC](https://forum.shopware.com/t/args-gt-stop-greift-nicht/32828/2 "2016-01-17T18:13:24Z")

</div>

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
