【问题标题】:Magento newsletter - check if GUEST is already subscribedMagento 时事通讯 - 检查 GUEST 是否已订阅
【发布时间】:2013-06-14 22:46:19
【问题描述】:

我在 Magento 中的默认时事通讯系统存在以下问题:如果已注册时事通讯的注册客户尝试再次注册,他会收到一个错误,说他已经订阅了,这是正常的。 但是,如果一个 GUEST(未登录)客户已经订阅了时事通讯并且他尝试再次注册它可以工作,他会收到时事通讯确认电子邮件,并且他可以确认他的订阅而没有收到任何错误,这是不正确的。 有什么方法可以检查一个 GUEST (NOT LOGGED IN) 客户是否已经订阅,以便在他尝试再次注册时出错?

谢谢,

亚历克斯

【问题讨论】:

    标签: php magento magento-1.7


    【解决方案1】:

    看看@

    Class :  Mage_Newsletter_SubscriberController
    Path  :  /app/code/core/Mage/Newsletter/controllers/SubscriberController.php
    Table : newsletter_subscriber
    

    假设您创建了一个覆盖 Mage_Newsletter_SubscriberController 的自定义模块

    在第 63 行周围添加($status = Mage::getModel('newsletter/subscriber')->subscribe($email); 上方)

    $emailExist = Mage::getModel('newsletter/subscriber')->load($email, 'subscriber_email');
    if ($emailExist->getId()) {
        Mage::throwException($this->__('This email address is already exist.'));
    }
    

    在前端覆盖 Newsletter 控制器

     <?xml version="1.0" encoding="iso-8859-1"?>
     <config>
         <frontend>
             <routers>
                 <newsletter>
                     <args>
                         <modules>
                             <My_Newsletter before="Mage_Newsletter_SubscriberController">My_Newsletter</My_Newsletter>
                         </modules>
                      </args>
                 </newsletter>
             </routers>
         </frontend>
     </config>
    

    【讨论】:

    • 我想您还必须检查他们是否已确认订阅(活动)。当他们的订阅不活跃时,您不想阻止他们订阅@ClainAlexandru
    • 我可以在结帐时对时事通讯复选框进行同样的检查吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-09
    相关资源
    最近更新 更多