重定向到仪表板后,Magento自定义注册成功消息

时间:2013-10-21 08:16:36

标签: php magento events message

我需要在客户注册后扩展自定义成功消息。注册后,用户将被重定向到仪表板,并显示标准成功消息:“感谢您注册...”。

我需要根据客户组属性更改此消息。我在线阅读但没有找到有效的解决方案......但我认为我的做法是错误的。我从这里开始: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;
}

是否有机会扩展此功能,以便我可以管理客户群的多个成功消息? 我找了一些关于它的资源,但我没有找到任何有用的资料

1 个答案:

答案 0 :(得分:0)

我认为您必须将events标记放在全局标记

<config><global>...<events>...</events>...</global>...</config>

编辑:

并且观察者文件扩展了Varien_Event_Observer,至少与我的一起工作

class Bbox_Regmess_Model_Observer extends Varien_Event_Observer{}
相关问题