2

ログイン後にmagentoでログインをクリックしたページに依存する特定のページにリダイレクトする方法は? でリダイレクトが発生することはわかっていAccountController.phpます。しかし、顧客がログインした場所からページのリンクを取得する方法.ログイン用に2つの異なるページがあります。

4

2 に答える 2

10

これは実際にはかなり簡単です。あなたがしなければならないことは、ログインを作成しているページのどこかに次のコードを挿入することだけです。

Mage::getSingleton('customer/session')->setBeforeAuthUrl(Mage::getUrl('*/*/*'));

機能 -参照元ページの URL を保持する顧客セッションに変数を設定します。AccountController変数が設定されている場合、ログイン後にそのページに戻ります。

アップデート

情報が完全ではないため、投稿を編集する必要があるかもしれないと思いました. 少し前に学んだように、実際には、ログイン後に「戻る/リダイレクトする」ロジックを支配する 2 つのセッション キーがあります。

  • before_auth_url: これは、ログイン/パスワードが検証に合格しなかった場合にユーザーに表示するページに設定する必要があります。
  • after_auth_url: これは、ログインに成功した後にユーザーをリダイレクトする URL です。

前者が設定されていない場合、Magento はafter_auth_url=を自動的に設定するため、上記のソリューションが機能しました。before_auth_url

簡単な例を次に示します。Checkout にログイン フォームがあります。したがって、ユーザーがログインした後にチェックアウトにリダイレクトされるようにしたいのですが、有効な資格情報を入力できなかった場合に、ユーザーがチェックアウトにリダイレクトされることは望ましくありませんユーザーがログイン ページにとどまるようにするのではなく、パスワードを忘れた場合のメールまたは新規登録をリクエストできるようにします。ユーザーがログインできるようになったら、Checkout に戻ってもらいたいと考えています。

そのユースケースは複雑に聞こえますが、実際には非常に簡単に実現でき、Magento Checkout ではまだ完了していません。したがって、設定する必要があるのは次のとおりです。

Mage::getSingleton('customer/session')
    ->setBeforeAuthUrl(Mage::getUrl('customer/account/login'));
Mage::getSingleton('customer/session')->setAfterAuthUrl(Mage::getUrl('*/*/*'));

それはすべての人々です:)

于 2012-09-26T13:02:38.520 に答える