我想根据Magento的位置更改商店。为此,当用户在浏览器中打开网站时,我创建了一个位置下拉列表,他/她需要选择其位置,网站将根据他/她的输入值重定向。
public function getLocationInfoByIp($observer) {
$location = $_POST['location'];
switch ($location) {
case "US": {
Mage::app()->setCurrentStore('en');
break;
}
case "IN": {
Mage::app()->setCurrentStore('de');
break;
}
default: {
Mage::app()->setCurrentStore('en');
break;
}
}
}
从下拉列表中选择位置后提交弹出窗口时,更改商店。但刷新后再次将商店更改为默认值。
因此,请建议您解决此问题。
答案 0 :(得分:0)
通过编辑这些行,在 index.php 文件中设置默认商店时可能会出现这种情况;
/* Store or website code */
$mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : ''; //check this line
/* Run store or run website */
$mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'store';
Mage::run($mageRunCode, $mageRunType);
如果您将商店代码设置为运行代码,请将其更改为默认(空白),如下所示。
答案 1 :(得分:-1)
您需要更改条件
public function getLocationInfoByIp($observer) {
$store = '';
$location = $_POST['location'];
if($location=='US' && Mage::app()->getStore()->getCode()!='en')
{
Mage::app()->setCurrentStore('en');
}else if($location=='IN' && Mage::app()->getStore()->getCode()!='de')
{
Mage::app()->setCurrentStore('de');
}else if(Mage::app()->getStore()->getCode()!='en')
{
Mage::app()->setCurrentStore('en');
}
}