Domanda

Questa domanda ha già una risposta qui:

La mia domanda è semplice, come conoscere l'evento Magento che vogliamo agganciare?

C'è qualche soluzione semplice?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top