Come conoscere la Magento evento che vogliamo Hook [duplicato]
-
16-10-2019 - |
Domanda
Questa domanda ha già una risposta qui:
La mia domanda è semplice, come conoscere l'evento Magento che vogliamo agganciare?
C'è qualche soluzione semplice?
Soluzione
Se si desidera visualizzare l'elenco degli eventi che Magento ha avete 3 opzioni:
1) Google per essa, ci sono un sacco di persone che hanno compilato una lista di eventi Magento
2) Creare un modulo che ganci sull'evento controller_action_predispatch
che è l'evento che si chiama prima di qualsiasi altro evento viene chiamato. All'interno di questo modulo è possibile registrare ogni evento che viene inviato:
Aggiungere la seguente sulla config.xml
<events>
<controller_action_postdispatch>
<observers>
<controller_action_after>
<class>yourmodule/observer</class>
<method>hookToControllerActionPostDispatch</method>
</controller_action_after>
</observers>
</controller_action_postdispatch>
</events>
E dentro la nomemodulo / Modello / Observer:
public function hookToControllerActionPostDispatch($observer) {
Mage::log($observer->getEvent()->getControllerAction()->getFullActionName());
}
È possibile che questo sarebbe registrare ogni evento che viene inviato ...
3) Se si dispone di accesso SSH è possibile eseguire il seguente comando per avere una panoramica di tutti gli eventi (e le loro file dove vengono spediti):
cd /path/to/<magento-root>
grep -nris 'dispatchEvent' app/code/
Altri suggerimenti
L'OnepageController invia un evento per salvare il metodo di spedizione. Probabilmente si potrebbe aggiungere la logica in là:
Da OnepageController.php:
Mage::dispatchEvent('checkout_controller_onepage_save_shipping_method',
array('request'=>$this->getRequest(),
'quote'=>$this->getOnepage()->getQuote()));
Quindi, il vostro nome dell'evento è checkout_controller_onepage_save_shipping_method
.