我想通过客户的 IP 经营商店。
在 Magento 的后端,用户可以将具体的 Store 配置为按国家加载。
扫了一眼,我看到了类 Mage_Core_Model_App 的方法
public function run($params)
{
$options = isset($params['options']) ? $params['options'] : array();
$this->baseInit($options);
if ($this->_cache->processRequest()) {
$this->getResponse()->sendResponse();
} else {
$this->_initModules();
$this->loadAreaPart(Mage_Core_Model_App_Area::AREA_GLOBAL, Mage_Core_Model_App_Area::PART_EVENTS);
if ($this->_config->isLocalConfigLoaded()) {
//$scopeCode = isset($params['scope_code']) ? $params['scope_code'] : '';
//===============custom scope by country======================
$scopeCode = Mage::helper('custom/module')->getStoreByGeoip();
//===============custom scope by country======================
$scopeType = isset($params['scope_type']) ? $params['scope_type'] : 'store';
$this->_initCurrentStore($scopeCode, $scopeType);
$this->_initRequest();
Mage_Core_Model_Resource_Setup::applyAllDataUpdates();
}
$this->getFrontController()->dispatch();
}
return $this;
}
在获得一个好的解决方案的过程中,我想到了另一种选择。
在 index.php 中写下一段代码:
Mage::app();
Mage::Helper('custom/helper')->getRunCodeByGeoio();
Mage::run($mageRunCode, $mageRunType);
我认为这对性能没有危险,因为这种方法只会在你以前没有的情况下创建对象
/**
* Get initialized application object.
*
* @param string $code
* @param string $type
* @param string|array $options
* @return Mage_Core_Model_App
*/
public static function app($code = '', $type = 'store', $options = array())
{
if (null === self::$_app) {
self::$_app = new Mage_Core_Model_App();
self::setRoot();
self::$_events = new Varien_Event_Collection();
self::$_config = new Mage_Core_Model_Config();
Varien_Profiler::start('self::app::init');
self::$_app->init($code, $type, $options);
Varien_Profiler::stop('self::app::init');
self::$_app->loadAreaPart(Mage_Core_Model_App_Area::AREA_GLOBAL, Mage_Core_Model_App_Area::PART_EVENTS);
}
return self::$_app;
}
而我的问题是......
这是获得解决方案的最佳方法吗?
我认为即使使用 rewrite 修改 Mage_Core_Model_App 也是非常危险的
我没有任何级别的活动
另一种选择是在index.php中进行业务但失去了后端的管理
搜索....,找到了满足我许多要求的扩展, http://www.mageworx.com/store-and-currency-auto-switcher-magento-extension.html 然后我会买这个或制作一个类似的扩展。