我需要在客户注册后扩展自定义成功消息。现在注册后,用户被重定向到仪表板,并显示标准的成功消息:“感谢您注册...”。
我需要根据客户组属性更改此消息。我在线阅读但没有找到可行的解决方案......但我认为我以错误的方式制作它。我从这里开始:http: //mydons.com/simple-example-using-magento-event-observer/对 customer_register_success 事件进行自定义观察者,所以我在 app/etc/ 中创建了名为 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 函数,负责设置成功消息、发送确认电子邮件并设置成功重定向 url:
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;
}
是否有机会扩展此功能,以便我可以根据客户组管理多个成功消息?
我一直在寻找一些关于它的资源,但我没有找到任何有用的东西