Я использую Observer, чтобы поймать это событие: controller_action_postdispatch_checkout_onepage_saveBilling
Я хочу это событие, чтобы проверить платежный адрес клиента.
Мой вопрос: как я могу отправить сообщение пользователю в этот момент. Когда нажата кнопка «Продолжить».
Я использовал: Mage::getSingleton('core/session')->addError('My message');
но сообщение не показывается пока не обновишь страницу. И вот второй вопрос. Как я могу перенаправить страницу с этой точки? Мне не повезло: $this->_redirect('*/*/');
и жестко закодированные URL-адреса не повезло. В идеале я хочу, чтобы, когда клиент нажимает кнопку «Продолжить», после некоторых проверок, которые я делаю, процесс должен быть остановлен с сообщением. Наблюдатель проверен, и он работает так, как должен работать.
Надеюсь смысл есть..
EDIT Это мой код. Просто чтобы убедиться, что я делаю это правильно: Модель/Наблюдатель
class Company_Restrictions_Model_Observer {
public function notifyUser($observer) {
//Lot's off lines are tested here.Nothing seems to work..
$observer->getRequest()->setParam('return_url','http://www.google.com/');
}
}
config.xml
<?xml version="1.0"?>
<config>
<modules>
<Company_Restrictions>
<version>0.1.0</version>
</Company_Restrictions>
</modules>
<global>
<models>
<company_restrictions>
<class>Company_Restrictions_Model</class>
</company_restrictions>
</models>
<helpers>
<company_restrictions>
<class>Company_Restrictions_Helper</class>
</company_restrictions>
</helpers>
<events>
<controller_action_postdispatch_checkout_onepage_saveBilling>
<observers>
<notify_user>
<type>singleton</type>
<class>Company_Restrictions_Model_Observer</class>
<method>notifyUser</method>
</notify_user>
</observers>
</controller_action_postdispatch_checkout_onepage_saveBilling>
</events>
</global>
</config>
РЕДАКТИРОВАТЬ ПОВТОРНО
После отладки я обнаружил, что многие функции выдают мне метод error.Undefined... например: _redirect() или Response() или Body().. Кто-нибудь знает, почему??