我有以下 Magento 多商店设置:
- German.domain.com
- 英文域名.com
- 法语.domain.com
所有人都在使用
- 安全域名.com
作为 SSL 域。购物车和一切正常,除了语言回落到英语!
如果我在 German.domain.com(商店语言为德语)上并单击结帐,商店将被定向到 secure.domain.com。我在 German.domain.com 上添加的产品存在,但语言不再是德语。它又回到了英语!它不处理 cookie 域设置,否则购物车中的产品将不会被共享。
有没有人有想法或已经解决了这个问题。我认为必须有一个智能编码来解决这个问题。
谢谢
解决方案:富兰克林 P Strube 给出了正确的解决方案,但我在 index.php 中的 PHP 中对其进行了硬编码:
$mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : '';
$mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'store';
if($_SERVER['SERVER_NAME'] != 'secure.domain.com' && isset($_SERVER['HTTP_REFERER'])) {
$url = parse_url($_SERVER['HTTP_REFERER']);
if($url['host'] == 'german.domain.com') {
setcookie('language', 'german', 0, '/', '.domain.com');
} elseif($url['host'] == 'french.domain.com') {
setcookie('language', 'french', 0, '/', '.domain.com');
} else {
setcookie('language', 'english', 0, '/', '.domain.com');
}
}
if($_SERVER['SERVER_NAME'] == 'secure.domain.com') {
if(isset($_COOKIE['language'])) {
$mageRunCode = $_COOKIE['language'];
}
}
Mage::run($mageRunCode, $mageRunType);