Magentoでログインした後、顧客を製品に戻す

私の顧客がMagentoにログインすると、そのユーザーは自分のアカウントページにリダイレクトされます。

顧客が以前に訪れた製品/ページにリダイレクトしたいと思います。

Magentoでこれをどうすればいいですか?私はオブザーバーが最善の方法でなければならないと思いますが、どこから始めたらいいのかわかりません。

ありがとう!

2
"システム"> "設定"> "顧客設定"のセクション "ログインオプション"は "いいえ"に設定されてもそれを行いませんか?
追加された 著者 JNDPNT,
実際には、「いいえ」に設定されています。しかし、私はログインフォームがどこかに書き換えられたことを推測することができます。私は見つけることができます!ありがとう!
追加された 著者 PauGNU,
OK、私はそれがなぜ機能していないかを知りました。私はこのログインボックスを右側に持っていて、フォームはrefererパラメータを使用しないので、Magentoは顧客をアカウントページに提供します。このリファラーがどのように設定されているかを調べる必要があります。
追加された 著者 PauGNU,

5 答え

製品ページにこれらのコードを追加

<?php Mage::getSingleton('customer/session')->setBeforeAuthUrl($this->helper('core/url')->getCurrentUrl()); ?>
4
追加された
getCurrentUrl()); getCurrentUrl());//getCurrentUrl()); //このメソッドを使用すると、コード>
追加された 著者 Oleksii Golub,
Log In

ログアウトした顧客がサイトのどのページにいても、このアンカータグをクリックするとログインページに移動し、正常にログインした後、アンカータグをクリックしたときのページにリダイレクトされます。

これはMagentoのオリジナルの "トップリンク"ロジックのログインリンクの代替/エミュレータです。

4
追加された
URL内の参照者を設定するこの方法は、受け入れられる回答でなければなりません。 v1.9.2.2のテストでは、セッションで「before_auth_url」を設定するのは、「ログイン後に顧客をアカウントダッシュボードにリダイレクトする」が「いいえ」に設定されている場合にのみ機能し、 the-urlオプションは "Yes"に設定されていても機能します。ユーザーが最後のページに戻ることが非常に重要な場合は、参照元ソリューションを使用する必要があります。
追加された 著者 Eric Seastrand,
私の最後のコメントの修正:v1.9.2.2のテストでは、セッションに「before_auth_url」を設定し、この回答に示されているようにURLにリファラーを追加する必要があることがわかりました。目的のページに戻ります。これはすべて、「ログイン後に顧客をアカウントダッシュボードにリダイレクトする」が設定で「はい」に設定されていることです。
追加された 著者 Eric Seastrand,

私はライトボックスのポップアップにmagentoのログインを入れています。その前にページのこのコードを参照URLに設定しています。それが役に立てば幸い。

<?php
   $current_url = $this->helper('core/url')->getCurrentUrl();
   $current_session = Mage::getSingleton('customer/session');
   if(isset($current_session)) $current_session->setData("before_auth_url", $current_url);
?> 

これを頭の中に入れて、すべてのページにbefore_auth_urlを設定することもできます。しかし、条件付きでこれをラップするようにして、ログインペイ自体にbefore_auth_urlを設定しないようにしてください。以下は私がこれを行うのに使ったコードです。

<?php
if (! Mage::helper('customer')->isLoggedIn()) {
    $current_url = $this->helper('core/url')->getCurrentUrl();
    if((strpos($current_url, 'login') > -1) || (strpos($current_url, 'sign-in') > -1) || (strpos($current_url, 'checkout') > -1) ) {

    } else {
        $current_session = Mage::getSingleton('customer/session');
        if(isset($current_session)) $current_session->setData("before_auth_url", $current_url);
    }
}
?>
1
追加された

カスタムログインリダイレクトプロの拡張機能が役立ちます。あなたは短いコード{{referer}}を使ってリファラーにリダイレクトすることができます。

0
追加された

それほど良い方法ではありませんが、それは動作します。

これはあなたを助けるかもしれません

$ redirectUrl = $ _SERVER ['HTTP_REFERER']; エコー 'document.location.href = "'。$ redirectUrl。 '";';

0
追加された