Hook für Basket()->sGetAmount() - richtige Vorgehensweise?

Hallo zusammen, ich habe jetzt einen Hook erstellt, der so aussieht: $hookBasket = $this-\>createHook( 'sBasket', 'sGetAmount', 'Basket\_sGetAmount\_After', Enlight\_Hook\_HookHandler::TypeAfter , 0 ); $this-\>subscribeHook($hookBasket); Was ich damit erreichen möchte: bei der Berechnung der Warenkorbsumme muss ich ein zusätzliches Feld (ob_attr1) mitberechnen. Die Methode Basket_sGetAmount_After() sieht so aus: $row = Shopware()-\>Db()-\>fetchRow( "SELECT SUM(quantity\*(floor(price \* 100 + .55)/100) \* IF (ob\_attr1,ob\_attr1,1)) AS totalAmount FROM s\_order\_basket " ); $args-\>setReturn($row); Ist das in Ordnung so? Was passiert, wenn ein anderes Plugin auch ein Hook auf diese Methode macht? Kann dadurch was schief gehen? Müsste ich vielleicht „TypeReplace“ statt „TypeAfter“ verwenden? Hoffe, das sind nicht zu viele Fragen :slight_smile: Vielen Dank.

[quote=“waldicom”]Hallo zusammen, ich habe jetzt einen Hook erstellt, der so aussieht: $hookBasket = $this-\>createHook( 'sBasket', 'sGetAmount', 'Basket\_sGetAmount\_After', Enlight\_Hook\_HookHandler::TypeAfter , 0 ); $this-\>subscribeHook($hookBasket); Was ich damit erreichen möchte: bei der Berechnung der Warenkorbsumme muss ich ein zusätzliches Feld (ob_attr1) mitberechnen. Die Methode Basket_sGetAmount_After() sieht so aus: $row = Shopware()-\>Db()-\>fetchRow( "SELECT SUM(quantity\*(floor(price \* 100 + .55)/100) \* IF (ob\_attr1,ob\_attr1,1)) AS totalAmount FROM s\_order\_basket " ); $args-\>setReturn($row); Ist das in Ordnung so? Was passiert, wenn ein anderes Plugin auch ein Hook auf diese Methode macht? Kann dadurch was schief gehen? Müsste ich vielleicht “TypeReplace” statt “TypeAfter” verwenden? Hoffe, das sind nicht zu viele Fragen :slight_smile: Vielen Dank.[/quote] Morgen, mit der Zahl hinter dem TypeAfter bestimmst du die Reihenfolge des Ausführens. Wenn ein anderes Plugin auch ein Hook darauf hat, werden Beide ausgeführt. TypeReplace nimmst du nur, wenn du den ganzen Code ersetzen willst. Ich kenne den original Code jetzt nicht, aber mit TypeReplace sollte es hinkommen. Funktioniert es den?