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 重定向..

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

于 2012-10-03T10:05:56.147 回答