1

訪問者が初めてウェブサイトにアクセスしたかどうかを確認し、国の選択 (店舗) でブロックを表示する必要があります。次に、訪問者の選択を Cookie に保存する必要があります (Cookie に保存するのが正しいと思います)。多分誰かがそれをして\または助けることができますか?

ありがとう。

4

1 に答える 1

2

ユーザーがページにアクセスしたら、Cookieが設定されているかどうかを確認し、Cookieの値に基づいてストアビューにリダイレクトされているかどうかを確認します。

私はmagentoにかなり慣れていないので、おそらくこれを行うためのより良い方法がありますが、私は自分と同じようなものが必要でした。

ユーザーがすべてのストアビューを一覧表示するページ(これはindex.phpにあり、Cookieが設定されていない場合にのみ表示されます)にアクセスしたときに、フォームが送信した値を変更すると、ポップアップに選択ボックスが表示されました。次に、head.phpファイルの下部で次のことを行いました

    if(isset($_POST['selectbox'])){
        $storeId = $_POST['selectbox'];
        $store_url = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB).$storeId;
        $cookie = Mage::getModel('core/cookie');
        $period = time()+86400;
        $cookie->set('country', $storeId,$period, '/');

        Mage::app()->getResponse()->setRedirect($store_url);
    }

そのため、フォームを送信した後、ストアコードの値を取得し、countryという名前のCookieを設定してから、ユーザーを特定のストアビューにリダイレクトしました。

次に、このコードの下で別のチェックを行って、国のCookieが設定されているかどうかを確認しました(次回ユーザーがサイトにアクセスしたときのために)

     if(isset($_COOKIE['country'])){
        $storeId = $_COOKIE['country'];
        $magento_store_id = Mage::app()->getStore()->getCode();
        $redirect_to = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB).$storeId;

    if($storeId != $magento_store_id)
     {   
       echo "<script type='text/javascript'>window.location.href='".$redirect_to."';</script>";
     }

現在のストアコードがCookieに保存されている値と等しくないかどうかを確認し、等しくない場合は、そのユーザーを正しいストアビューにリダイレクトします。ヘッダーがすでにエラーを出力しているため、JavaScriptリダイレクトを使用する必要がありました。

うまくいけば、それはあなたにいくつかのアイデアとクッキーの使い方を与えるでしょう..しかし私が言ったように私はこれを行うためのより良い方法があると思います。私はそれを利用できるように、正直に言うと自分でそれを行う正しい方法を見てうれしいです。

于 2012-10-03T10:05:56.147 に答える