php - Magento 时事通讯 - 检查 GUEST 是否已订阅

标签 php magento magento-1.7

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

谢谢,

亚历克斯

最佳答案

看看@

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 Controller

 <?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>

关于php - Magento 时事通讯 - 检查 GUEST 是否已订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17110817/

相关文章:

php - div 内容从网页底部剪裁

Magento - 无法使用 SSL 访问结帐

mysql - Mysql 连接错误

php - 如何将第 3 方库添加到 magento?

image - 在 Magento 中添加管理配置选项卡图像

php - 使用wget远程登录

php - Facebook-Ignited (facebook php-sdk) - 无限循环/如何调试?

html - 背景 slider

javascript - Magento 中的 Facebook 转化跟踪

php - 从 MySQL 中检索数据,跳过按 ID 排序的前 4 个输出