2012-10-03 41 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