3

Magento のデフォルトのニュースレター システムには次の問題があります。すでにニュースレターにサインアップしている登録済みの顧客が再度サインアップしようとすると、既に購読していることを示すエラーが表示されますが、これは正常な動作です。ただし、ゲスト (ログインしていない) 顧客が既にニュースレターを購読していて、再度サインアップしようとすると、ニュースレターの確認メールが届き、エラーが発生することなく購読を確認できますが、これは問題ありません。ゲスト (ログインしていない) の顧客が既に購読しているかどうかを確認して、再度サインアップしようとしたときにエラーが発生するようにする方法はありますか?

ありがとう、

アレックス

4

1 に答える 1

5

見てみる@

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>
于 2013-06-14T14:38:54.837 に答える