Wir haben ein kleines Test-Plugin geschrieben, das den „Kaufen“-Button ausblendet / deaktiviert, wenn der im Admin eingestellte Mindestbestellwert noch nicht erreicht ist. Das funktioniert einwandfrei.
Im Warenkorb Template gibt es aber einen Block {% block component_offcanvas_cart_actions_cart %} in den z.B. die Plugins von PayPal und Amazon schreiben.
Ist ein solches Plugin aktiv, dann reicht es nicht aus, den „normalen“ Kaufen-Button zu deaktivieren, da eine Bezahlung dann ja auch direkt über z.B. PayPal-Express möglich ist.
Wir müssen also dafür sorgen, dass diese Plugins nur dann in den Block schreiben, wenn der Mindestbestellwert erreicht ist. Wenn dieser nicht erreicht ist, dann darf auch die Bezahl-Möglichkeit über PayPal-Express usw. nicht angezeigt werden.
Über das abgeleitete Twig-Template unseres Plugins lässt sich das gewünschte Verhalten nicht erzeugen. Vgl. Dokumentation Twig extends - Documentation - Twig - The flexible, fast, and secure PHP template engine („Contrary to what you might think, this template does not define a block conditionally“)
Hinter dem Problem steckt die grundsätzliche Frage, ob und wie man mit einem Plugin das Verhalten eines anderen Plugins beeinflussen kann.
Wie könnte eine sinnvolle Lösung aussehen?
Wichtig ist vor allem, dass diese Lösung in allen Konstellationen 100% funktionieren muss. Die Existenz eines bestimmten Plugins oder bestimmte Einstellungen eines Plugins dürfen nicht vorausgesetzt werden.
Über eine Lösung bzw. Hinweise, die zu einer Lösung führen, würde ich mich sehr freuen.
Vielen Dank schonmal im Voraus und viele Grüße,
Matthias