Replace Hook für Drittanbieter Plugin

Hallo zusammen, wir versuchen eine Methode in einem anderem Plugin (im Shopware Paypal Plugin) zu ersetzen. Die reguläre Registrierungung einer replace-Hook schlägt fehl: $this-\>subscribeEvent( 'Shopware\_Plugins\_Frontend\_SwagPaymentPaypal\_Bootstrap::onInitResourcePaypalClient::replace', 'onInitResourcePaypalClient' ); Kann mir jemand sagen ob das überhaupt möglich ist was ich da vorhabe? Gibt es andere Ansätze, z.B. mit einem notifyUnitil Event? Vielen Dank, Constantin

Plugins werden nicht über proxies geladen - daher werden hooks nicht funktionieren. Wenn das Plugin keine Events bereit stellt, dann hast du keine Chance… Viele Grüße

Hi, grundlegend ist es, wie Aquatuning sagt. In diesem konkreten Fall kannst du dich aber einhaken: Wenn dein Plugin auf das Event “Enlight_Bootstrap_InitResource_PaypalClient” eher antwortet, als das Paypal-Plugin (Event-Position), kannst du deinen eigenen Service registrieren. Den könntest du dann bspw. vom PayPal-Client ableiten lassen. Unter Umständen hilft das ja schon weiter. Ansonsten bleibt dir eigentlich nur die Möglichkeit, ein Ticket anzulegen oder ggf. einen PullRequest auf das Plugin zu stellen: https://github.com/shopwareLabs/SwagPaymentPaypal/ Besten Gruß, Daniel

1 „Gefällt mir“

[quote=“Daniel Nögel”]In diesem konkreten Fall kannst du dich aber einhaken: Wenn dein Plugin auf das Event “Enlight_Bootstrap_InitResource_PaypalClient” eher antwortet, als das Paypal-Plugin (Event-Position), kannst du deinen eigenen Service registrieren. Den könntest du dann bspw. vom PayPal-Client ableiten lassen.[/quote] Hallo Daniel, so haben wir es gemacht es funktioniert auch soweit erstmal. Danke euch beiden für die Hilfe. Viele Grüße, Constantin