Eventmanager: Subscribed Event entfernen

Hallo zusammen,

ein verwendetes Plugin erfüllt eine durchaus nützliche und gute Aufgabe. Ein Verhalten, das über einen Subscriber eingebracht wird, ist in meinem Fall jedoch unerwünscht. Gibt es eine gute Möglichkeit die subscribte Methode wieder zu entfernen?

public static function getSubscribedEvents()
{
    return array(
        'Shopware_Controllers_Frontend_Checkout::saveShippingPaymentAction::before' => 'beforeSaveShippingPayment',
    );
}

Vielen Dank!
Morty
 

Hallo Morty,

wenn ich dein Problem richtig verstehe, musst du diesen bloß aus dem Array entfernen.

public static function getSubscribedEvents()
{
    return array();
}

 

Hallo @Reinelt‍,

danke für deine Antwort. Wie der Core sollten auch Fremdplugins jedoch nicht modifiziert werden.

Ausgangslage: Methode ist in einem Fremd-Plugin auf ein Event registriert worden. Das Plugin macht einen guten Job, allein diese Methode verhält sich unerwünscht.
Wusch: Die Registrierung außerhalb des Fremd-Plugins programmatisch (etwa über ein eigenes Plugin) wieder entfernen.

Vielen Dank und schöne Grüße!
Morty

Du subscribst dich auf ein früheres Event. Holst dir alle Listener via Shopware()->Events()->getListeners($eventName);, suchst dir den passenden raus und entfernst ihn mit Shopware()->Events()->removeListener();

2 „Gefällt mir“

Prima! Genaus das, was ich gesucht habe.
Herzlichen Dank @Shyim‍!