马根托.在cookie中保存访问者商店的选择



我需要检查访问者是否是第一次访问网站,并显示国家/地区选择(商店)。

然后我需要将访问者的选择保存在cookie中(我只是认为将其保存在cookie是正确的)。

当用户登录页面时,检查是否设置了cookie,如果设置了cookie则根据cookie值重定向到商店视图。

我对马根托还很陌生,所以可能有更好的方法可以做到这一点,但我自己也需要类似的东西。

当用户登录列出所有商店视图的页面时,我在弹出窗口中有一个选择框(这是在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重定向。。

希望这能给你一些关于如何使用cookie的想法。。但就像我说的,我想还有更好的方法。老实说,我很高兴看到自己做这件事的正确方式,这样我就可以利用它了。

最新更新