2013-05-07 4 views
0

Так что я просто пытаюсь создать крючок в событии предварительной передачи регистрации. Это то, что я до сих пор:Magento: создание события для расширения создания клиента в magento

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 вызывался в моих журналах событий, но его не называя моего функция.

Пожалуйста, помогите!

UPDATE:

Ответ ниже работал отлично для меня. Однако $ observer-> getEvent() -> getCustomer() получает NULL для меня, хотя другой наблюдатель переопределяет одно и то же точное событие, и это отлично работает. Я пробовал временно комментировать конфигурацию observer для другого расширения, и он все еще пуст. Есть идеи?

+0

В вашем наблюдателя вы не можете получить объекты, которые были не отправлено с событием. События 'controller_action_predispatch_' запускаются во время диспетчеризации приложения (очевидно) и не содержат никаких объектов из реализации логики контллеллера. Из этого события вы можете получить только сам контроллер действий. Вы должны использовать другое событие, чтобы привлечь клиента к созданию - например, 'customer_register_success' –

ответ

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> 
+0

Спасибо, что это сработало для меня. –

0

Может быть, попробовать со следующими Event

customer_register_success 
Смежные вопросы