Magento,在订阅时事通讯上显示弹出的“谢谢”消息

时间:2017-01-11 01:49:26

标签: php magento newsletter subscribe

我想用“感谢您订阅”而不是绿色通知显示弹出窗口。

通知图片:

enter image description here

所以,我不知道如何在会话中获取消息,或者通过了解用户已订阅来覆盖SubscribeController以发送一些参数。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

因此您需要覆盖SubscriberController.php模块的Newsletter控制器。控制器具有newAction(),用于添加订户的详细信息。

在模块的config.xml中创建新模块 -

<?xml version="1.0" encoding="UTF-8"?>
 <config>
   <frontend>
    <routers>
        <newsletter>
            <args>
                <modules>
                    <knewsletter before="Mage_Newsletter">MyNamespace_MyModlulename</knewsletter>
                </modules>
            </args>
        </newsletter>
    </routers>
  </frontend>

然后在控制器文件夹中添加SubscriberController.php -

<?php
 require_once Mage::getModuleDir('controllers', "Mage_Newsletter").DS."SubscriberController.php";
 class MyNamespace_MyModlulename_SubscriberController extends Mage_Newsletter_SubscriberController{

  public function newAction() {
       // can copy the content of original newAction and modify accordingly.
  }
}     

答案 1 :(得分:0)

上面有一个简单的方法。

如果您打开主题中的主模板文件,即1列,2列左侧等,您会注意到以下代码:

<?php echo $this->getChildHtml('global_notices') ?>

首先,您需要对这些进行评论,这将删除页面上当前显示的消息。

现在转到您网站的footer.phtml并添加如下内容:

<?php if($this->getMessagesBlock()->getMessageCollection()->count()): ?>
    <div id="global_messages_popup" style="display: none">
        <a href="javascript:void(0)" id="global_messages_close" style="display: none" title="<?php echo $this->__('Hide messages') ?>">&times;</a>
        <?php echo $this->getMessagesBlock()->getGroupedHtml(); ?>
    </div>
<?php $this->getMessagesBlock()->getMessageCollection()->clear(); ?>
<script>
// Here you can write js code to open above div in a popup or something else.
</script>
<?php endif; ?>

以上未经过测试,请自行检查。