为了根据IP查找客户端的地理位置并重定向到适当的商店,我使用GeoIP扩展和一个小的切换案例来重定向用户。我将switch case放在index.php文件中,页面通过它加载。但我不想在管理页面加载时检查地理位置。因此,如果管理员访问该网站,它不必检查位置。它必须只是加载页面。那我该怎么做呢。
答案 0 :(得分:0)
创建新的Magento模块,并为其添加一个辅助类
class Namespace_Modulename_Helper_Isadmin extends Mage_Core_Helper_Abstract
{
public function isAdmin()
{
if(Mage::app()->getStore()->isAdmin())
{
return true;
}
if(Mage::getDesign()->getArea() == 'adminhtml')
{
return true;
}
return false;
}
}
现在,只要您需要检查是否在管理员中,请使用此帮助程序
if( Mage::helper('modulename/isadmin')->isAdmin() )
{
//bypass the geoip check
}
答案 1 :(得分:0)
这就是我解决问题的方法。我已经安装了GeoIP扩展。由此我们可以获得基于IP的国家代码。我在观察者中添加了一个函数,这只会在页面加载时触发一次事件“controller_action_predispatch”,在观察者中,我使用一个switch case在商店之间切换。这是我的功能&切换案例。
public function getLocationInfoByIp($observer) {
$geoIP = Mage::getSingleton('geoip/country');
$cnCode = $geoIP->getCountry();
switch ($cnCode) {
case "US": {
Mage::app()->setCurrentStore('en');
break;
}
case "IN": {
Mage::app()->setCurrentStore('de');
break;
}
default: {
Mage::app()->setCurrentStore('en');
break;
}
}
}
}