Magento 中的默认时事通讯系统存在以下问题:如果已注册时事通讯的注册客户再次尝试注册,则会收到错误消息,提示他已订阅,这是正常的。但是,如果一个 GUEST(未登录)客户已经订阅了时事通讯并且他尝试再次注册它可以工作,他会收到时事通讯确认电子邮件,并且他可以确认他的订阅而没有收到任何错误,这是不正确的。有什么方法可以检查 GUEST (NOT LOGGED IN) 客户是否已经订阅,以便在再次尝试注册时出错?
谢谢,
亚历克斯
Magento 中的默认时事通讯系统存在以下问题:如果已注册时事通讯的注册客户再次尝试注册,则会收到错误消息,提示他已订阅,这是正常的。但是,如果一个 GUEST(未登录)客户已经订阅了时事通讯并且他尝试再次注册它可以工作,他会收到时事通讯确认电子邮件,并且他可以确认他的订阅而没有收到任何错误,这是不正确的。有什么方法可以检查 GUEST (NOT LOGGED IN) 客户是否已经订阅,以便在再次尝试注册时出错?
谢谢,
亚历克斯
看一看 @
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>