Magento的。将访客商店选择保存在cookie中

时间:2012-10-03 09:00:51

标签: magento cookies store choice visitor

我需要检查访问者是否第一次访问网站并显示具有国家/地区选择(商店)的区块。然后我需要在cookie中保存访问者选择(我只是认为将它保存在cookie中是正确的)。也许有人这样做了,或者可以帮忙吗?

感谢。

1 个答案:

答案 0 :(得分: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重定向。

希望这会给你一些想法以及如何使用cookies ..但就像我说的,我想有更好的方法来做到这一点。我很高兴看到自己这样做是正确的,所以我可以利用它。