我需要在客户注册后扩展自定义成功消息。注册后,用户将被重定向到仪表板,并显示标准成功消息:“感谢您注册...”。
我需要根据客户组属性更改此消息。我在线阅读但没有找到有效的解决方案......但我认为我的做法是错误的。我从这里开始:http://mydons.com/simple-example-using-magento-event-observer/在customer_register_success事件上创建一个自定义观察者,所以我在app / etc / modules中创建了名为Bbox_Regmess.xml的模块xml:
<config>
<modules>
<Bbox_Regmess>
<active>true</active>
<codePool>local</codePool>
</Bbox_Regmess>
</modules>
</config>
我在config.xml中创建了app / code / local / Bbox / Regmess / etc和app / code / local / Bbox / Regmess / Model文件夹:
<config>
<modules>
<Bbox_Regmess>
<version>0.1.0</version>
</Bbox_Regmess>
</modules>
<frontend>
<events>
<customer_register_success>
<observers>
<Bbox_Regmess_Model_Observer>
<type>singleton</type>
<class>Bbox_Regmess_Model_Observer</class>
<method>Customregmess</method>
</Bbox_Regmess_Model_Observer>
</observers>
</customer_register_success>
</events>
</frontend>
</config>
而Observer.php只是第一次尝试看我是否能够添加自定义成功消息:
<?php
class Bbox_Regmess_Model_Observer {
public function Customregmess($observer) {
$event = $observer->getEvent(); //Fetches the current event
$customer = $event->getCustomer();
$eventmsg = "Current Event Triggered : <I>" . $event->getName() . "</I><br/> Currently Added Product : <I> " . $customer->getCustomerName()."</I>";
//Adds Custom message to shopping cart
Mage::getSingleton('customer/session')->addSuccess($eventmsg);
}
}
?>
现在,如果用户注册到商店,他会收到标准注册消息,并且没有自定义$ eventmsg
我做错了什么?还有另外一种方法吗?谢谢
更新:
看得更深我发现默认成功消息是在第390行的app / code / core / Mage / Customer / controllers / AccountController.php中定义的(就在第334行之后,其中有customer_register_success事件的定义,我正在尝试与...合作
第390行有_welcomeCustomer函数负责设置成功消息,发送确认电子邮件并设置成功重定向网址:
protected function _welcomeCustomer(Mage_Customer_Model_Customer $customer, $isJustConfirmed = false)
{
$this->_getSession()->addSuccess(
$this->__('Thank you for registering with %s.', Mage::app()->getStore()->getFrontendName())
);
$customer->sendNewAccountEmail(
$isJustConfirmed ? 'confirmed' : 'registered',
'',
Mage::app()->getStore()->getId()
);
$successUrl = Mage::getUrl('*/*/index', array('_secure'=>true));
if ($this->_getSession()->getBeforeAuthUrl()) {
$successUrl = $this->_getSession()->getBeforeAuthUrl(true);
}
return $successUrl;
}
是否有机会扩展此功能,以便我可以管理客户群的多个成功消息? 我找了一些关于它的资源,但我没有找到任何有用的资料
答案 0 :(得分:0)
我认为您必须将events标记放在全局标记
中 <config><global>...<events>...</events>...</global>...</config>
编辑:
并且观察者文件扩展了Varien_Event_Observer,至少与我的一起工作
class Bbox_Regmess_Model_Observer extends Varien_Event_Observer{}