我需要检查访问者是否第一次访问网站并显示具有国家/地区选择(商店)的区块。然后我需要在cookie中保存访问者选择(我只是认为将它保存在cookie中是正确的)。也许有人这样做了,或者可以帮忙吗?
感谢。
答案 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 ..但就像我说的,我想有更好的方法来做到这一点。我很高兴看到自己这样做是正确的,所以我可以利用它。