我在 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/