Hook nur über Frontend feuern

Hallo zusammen,

ich habe wieder mal ein kleines Problem.

In einem Plugin hooke ich an Shopware\Models\Customer\Address.

Ich möchte nun aber, dass meine Funktion nur ausgeführt wird, wenn ein User im Frontend seine Adresse ändert, nicht dagegen wenn ich etwas über das Backend verändere.

Wie bekomme ich also raus, ob der Aufruf vom Front- oder Backend kommt?

Besten Dank & ein schönes Wochenende 

Hi,

Wie genau gehst du denn vor? Die Models sind in Shopware eigentlich nicht hookable, von daher wundert mich das etwas. 

Grundsätzlich könntest  du in einem Controller beispielsweise mit $this->Request()->getModuleName() (oder getModuleKey(), bin mir gerade nicht sicher) rausfinden, ob das Frontend, Backend, API oder Widget-Namespace sind. 

Daniel

Danke für deine Antwort!

Ich hooke auch nicht das Model, sondern eine Funktion des Models :wink:

$this->subscribeEvent(
            'Shopware\Models\Customer\Address::preUpdate',
            'onUpdateAddressBefore'
        );

Beim subscriben eines Controllers funktioniert die von dir genannte Methode, das nutze ich auch schon. 

Wie kann ich aber bei Models den ModuleName oder ModuleKey abfragen?

Hi, 

müsste global über Shopware() ->Front()->Request() gehen. 

Besten Gruß, 

Daniel 

Yes, das wars!

Besten Dank!