Magento:创建一个事件来扩展magento中的客户创建

时间:2013-05-07 15:26:09

标签: magento observers

所以我只是想在注册predispatch事件中创建一个钩子。这就是我到目前为止所做的:

config.xml:

<events>
  <controller_action_predispatch_customer_account_createpost>
    <observers>
      <mymodulename>
        <class>mymodulename/observer</class>
        <method>hookToAccountCreationBefore</method>
      </mymodulename>
    </observers>
  </controller_action_predispatch_customer_account_createpost>
</events>

和观察员:

Model/Observer.php :

public function hookToAccountCreationBefore($observer) {
  die('getting here');
}

所以我去做注册,我看到在我的事件日志中调用了controller_action_predispatch_customer_account_createpost事件,但它没有调用我的函数。

请帮忙!

更新:

以下答案对我来说非常合适。但是,$ observer-&gt; getEvent() - &gt; getCustomer()为我获取NULL,即使另一个观察者正在覆盖相同的确切事件,这样也可以。我已经尝试暂时注释掉另一个扩展的观察者配置,它仍然是空的。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

在您的config.xml中,您也可以

config.xml:

<global>
    <models>
        <mymodulename>
            <class>MyNamespace_MyModuleName_Model</class>
        </mymodulename>
    </models>
    <events>
        <controller_action_predispatch_customer_account_createpost>
            <observers>
                <mymodulename>
                    <type>singleton</type>
                    <class>mymodulename/observer</class>
                    <method>hookToAccountCreationBefore</method>
                </mymodulename>
            </observers>
        </controller_action_predispatch_customer_account_createpost>
    </events>
</global>

<global>
    <events>
        <controller_action_predispatch_customer_account_createpost>
            <observers>
                <mymodulename>
                    <type>singleton</type>
                    <class>MyNamespace_MyModuleName_Model_Observer</class>
                    <method>hookToAccountCreationBefore</method>
                </mymodulename>
            </observers>
        </controller_action_predispatch_customer_account_createpost>
    </events>
</global>

答案 1 :(得分:0)

也许尝试使用以下活动

customer_register_success