1

对不起,如果这真的很明显,不擅长编码并且对 cookie 不熟悉,所以仍然试图让我了解它。我正在尝试为我的 Magento 安装创建一个网站重定向。在 index.php 中,我放置了以下代码来检查用户 IP 位置,将他们引导到正确的网站并设置 cookie。如果已经设置了 cookie,它会从 cookie 中获取值并基于此定向到网站。

if ((isset($_COOKIE['penstore']) )){

     $_SERVER['MAGE_RUN_CODE'] = $_COOKIE['penstore'];
     $_SERVER['MAGE_RUN_TYPE'] = "website"; 
} 
else 
{ 

include("geoip.inc");
$ip=$_SERVER['REMOTE_ADDR'];
$gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);

$country_code = geoip_country_code_by_addr($gi, "$ip");

geoip_close($gi);

switch($country_code)

{ case "CA": case "US":
$_SERVER['MAGE_RUN_CODE'] = "usa";
$_SERVER['MAGE_RUN_TYPE'] = "website";
setcookie("penstore",'usa',time()+43200);
break;
  case "GB":
$_SERVER['MAGE_RUN_CODE'] = "uk";
$_SERVER['MAGE_RUN_TYPE'] = "website";
setcookie("penstore",'uk',time()+43200);
break;
  default:
$_SERVER['MAGE_RUN_CODE'] = "int";
$_SERVER['MAGE_RUN_TYPE'] = "website";
setcookie("penstore",'int',time()+43200);
}
}

这一切似乎都可以正常工作,我的问题是找到一种方法,允许客户通过单击标题中的图像来更改网站。我已经尝试了几种不同的方法,基于在网络和这个网站上找到的代码,但我无法让它工作。我目前在 header.phtml 中有以下代码:

<script language="text/javascript">
function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
    location.reload();
}
</script>

<a href="#" onclick="createCookie('penstore','int',30)"><img src="http://mysite.com/images/INT.gif"></a>
<a href="#" onclick="createCookie('penstore','usa',30)"><img src="http://mysite.com/images/US.gif"></a>
<a href="#" onclick="createCookie('penstore','uk',30)"><img src="http://mysite.com/images/GB.gif"></a>

这个想法是,客户单击图像会导致更新 cookie 值并重新加载当前页面,这基于 index.php 中的代码,会导致加载不同的网站。所发生的只是 # 被添加到 url 中?

编辑:澄清一下,我正在尝试切换网站,而不是商店,所以不能使用 Magento 商店切换器。

4

0 回答 0