2012-10-03 39 views
1

我需要检查访问者是否是第一次在网站上显示与国家选择(商店)的区块。然后,我需要将访问者的选择保存在Cookie中(我认为将它保存在Cookie中是正确的)。也许有人这样做,或者可以帮忙?Magento。在Cookies中保存访客商店选择

谢谢。

回答

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); 
    } 

所以表单提交后,我抓起店内码值和设定一个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 ..但就像我说我想象有一个更好的方式做到这一点。我很乐意看到正确的做法,我自己说实话,所以我可以利用它。

+0

永远不会使用$ _POST ['selectbox']是Magento.It将绕过Magento的所有安全逻辑,因此将容易受到黑客攻击。 – oscprofessionals

+0

嗨Satish,那该怎么办?你能否提供上述例子的修改后的代码,供其他人使用。谢谢 – iSrini