Magentoメッセージに問題があります。理論的には、ストアの一部の部分へのアクセスを制限できるカスタムモジュールを構築しています。私はcontroller_action_predispatch
イベントにフックするオブザーバーを作成し、現在の要求にユーザーがアクセスできるかどうかをチェックします。アクションにアクセスできない場合、オブザーバはユーザをリダイレクトし、エラー情報を設定します。ショップ全体をクリックするのを避けるため、顧客が来ているページにリダイレクトURLを設定したいと思います。私はを見て、それが設定されている場合はそれを使用し、そうでなければ私は顧客をホームページにリダイレクトします。問題は、後のケース(ホームページのリダイレクト)ですべてがうまくいくが、リファラーに基づいてURLを設定すると、メッセージボックスにエラーメッセージが表示されないということです。リダイレクト後にMagentoがメッセージを失う
オブザーバー($name
変数が文字列である)からコード:私は面白い見つけたもの
Mage::getSingleton('core/session')->addError('Acces to '.$name.' section is denied');
$url = Mage::helper('core/http')->getHttpReferer() ? Mage::helper('core/http')->getHttpReferer() : Mage::getUrl();
Mage::app()->getResponse()->setRedirect($url);
は、私はオブザーバーファイルの変更を行うと、それを保存する場合は、次の要求が失敗したということで、 refererにリダイレクトされます。urlはエラー情報を表示しますが、それ以降のメッセージはすべて失われます。
私はこの問題は、(私は.localのドメインを使用しています)完全なURLと私の地元のインスタレーションであると考えていたが、私は
$url = str_replace(Mage::getBaseUrl(), '/', $url);
を追加しようとしたが、これは助けませんでした。
私はリダイレクトを試みても、結果はまったくなく、header()
です。
すべてのキャッシュが無効です。カートリンク(このアカウントのカートが無効になっている)
- 私がアクセス可能な任意のページに行くよ
- クリック:問題をトリガーするワークフローは次のようです/顧客/アカウントに戻り、エラーメッセージが再び
- 戻る/顧客/アカウントが、エラーメッセージなしにカートリンク上
- クリックして表示される
見た目のヒントがあれば幸いです。
キャッシュに問題があるかどうかを確認するために、すべてのキャッシュを無効にすることはできますか(magento EEの場合は+ FPC)?ところで、私はすべての説明を理解していない、セッションエラーメッセージが最初の表示の後に削除されることを理解していますか? –
私は説明を展開し、今はっきりしていることを願っています。 – Zefiryn