Hallo,
ich habe ein Plugin erstellt, das einen Service des PayPal-Plugins dekoriert. Ich möchte nun eine Methode im Subscriber ändern, finde jedoch keine Anleitung dafür. Wie kann ich vorgehen, um die Methode im Subscriber eines anderen Plugins zu überschreiben? Ich bin mir bewusst, dass ich den Subscriber auch im PayPal-Plugin überschreiben kann, aber das ist nur eine temporäre Lösung.
Kann mir jemand einen Leitfaden geben, wie ich vorgehen kann, um die Methode im Subscriber eines anderen Plugins in Shopware 5 zu überschreiben?
Vielen Dank im Voraus!
Hallo @karem.albadawi
welchen Subscriber genau möchtest du überschreiben und wieso? Vielleicht gibt es ja einen anderen Weg, dein gewünschten Verhalten zu erreichen
Viele Grüße aus Schöppingen
Michael Telgmann
Hallo @Michael_Telgmann
Ich möchte den ExpressCheckout-Subscriber ändern, indem ich in der Methode „addExpressCheckoutButtonDetail“ die Überprüfung auf ESD-Artikel auskommentiere.
Mit freundlichen Grüßen
Karim Al Badawi
Hi Karim,
reicht es nicht aus, diesen Service zu dekorieren? SwagPaymentPayPalUnified/EsdProductChecker.php at 6.0.3 · shopwareLabs/SwagPaymentPayPalUnified · GitHub
Der wird ja eigentlich an allen Stellen genutzt, um zu prüfen, ob ESD Produkte vorhanden sind.
Viele Grüße aus Schöppingen
Michael Telgmann
Hallo @Michael_Telgmann,
Nein, das hat leider nur fürs Listing gereicht.
Für die Detailseite wird in der Methode „addExpressCheckoutButtonDetail“ nach dem Attribut ‚ESD‘ in sArticle gesucht. Dort wird die Service EsdProductChecker nicht verwendet.
Als ich die folgende If-statement in ExpressCheckout auskommentiert habe, wurden die Express Checkout Buttons in Detail angezeigt.
if ($args->getSubject()->View()->getAssign('sArticle')['esd'] === true) {
return;
}
PS: Mich würde es für weitere Projekte interessieren, wie man vorgehen soll, wenn man den Subscriber eines anderen Plugins ändern will.
Mit freundlichen Grüßen,
Karim Al Badawi
Hi Karim,
grundsätzlich sind Subscriber ja auch als Service im DI Container von Symfony deklariert. D.h. du kannst hier auch das decorator Pattern für eine Erweiterung nutzen. Statt aber das gleiche Interface zu implementieren, musst du in diesem Fall von dem Subscriber erben, den du erweitern/ändern möchtest.
Viele Grüße aus Schöppingen
Michael Telgmann
Hallo,
vielen Dank. Ich werde es nun so probieren.