オブザーバーから Magento で動作するリダイレクトを作成するのに問題があります。
私が知る限り、($observer
オブジェクト内で) 応答オブジェクトを取得した多くのイベントがあります。別の方法は、次のようなものを使用することです
Mage::app()->getResponse()->setRedirect(Mage::getUrl('checkout/cart'));
ここで言及されているようにhttps://stackoverflow.com/a/4730200/1700048偉大なアラン・ストームによって。
sendResponse()
残念ながら、次のように追加しても、これはうまくいきません。
Mage::app()->getResponse()->setRedirect(Mage::getUrl('checkout/cart'))->sendResponse();
例えば:
一部のメールアドレスからニュースレターを購読できないようにしたい。newsletter_subscriber_save_before
したがって、イベントのオブザーバーを作成しました。
私のオブザーバーメソッドでは、いくつかのケースをチェックし、それらがトリガーされた場合、ニュースレターの購読を保存しないようにしたいと考えています。私の計画は、次のようなエラーを追加することでした:
Mage::getSingleton('checkout/session')->addError('Email is spam!');
上記のようにリダイレクトを使用して現在のページをリロード (エラー メッセージを表示) するだけです (checkout/cart
この例では、実際に動作することを確認するだけです)。
残念ながら、リダイレクトは機能しません。sendResponse
この場合、応答を送信しないのはなぜですか?
手伝ってくれてありがとう :)