【问题标题】:How to get url for specific store in magento如何在magento中获取特定商店的网址
【发布时间】:2014-07-13 04:07:04
【问题描述】:

我正在开发一个自定义支付模块,我需要一件事的帮助!

当我在 magento url 中的 onepagecheckout 上单击下订单时,我将重定向到我通过此代码获取的支付网关

Mage::getUrl('comm/comm/redirect')

这会生成重定向网址

我的问题是在 magento 中为商店 www.abc.com 运行 multistore 时,此重定向效果很好并返回 (www.abc.com/index.php/comm/comm/redirect)

但对于另一家商店 www.def.com,它也会重定向到相同的 url (www.abc.com/index.php/comm/comm/redirect)

它应该是(www.def.com/index.php/comm/comm/redirect),以便该商店重定向到它自己的特定支付网关。

点击下单时如何获取具体的店铺网址。

感谢您的帮助

【问题讨论】:

    标签: php magento


    【解决方案1】:

    Mage::getUrl()可以带两个参数:

    参数1 - $routePath -> 以“模块/控制器/动作”形式表示的路由路径

    参数 2 - $routeParams -> 这是一个将键/值转换为路径目录对的数组。

    如果您添加 _store 参数,Magento 将使用正确的域作为基本 URL。例如

    Mage::getUrl('comm/comm/redirect', array(
        '_store'=>'your_store_id'
    ));
    

    Mage::getUrl('comm/comm/redirect', array(
        '_store'=>'your_store_code'
    ));
    

    如需更多参考资料和可用选项的完整列表,请访问:http://www.magentocommerce.com/wiki/5_-_modules_and_development/reference/geturl_function_parameters

    【讨论】:

      【解决方案2】:

      你可以在你的块中创建一个类似的函数:

      function getStoreByCode($storeCode)
      {
          $stores = array_keys(Mage::app()->getStores());
          foreach($stores as $id){
            $store = Mage::app()->getStore($id);
            if($store->getCode()==$storeCode) {
              return $store;
            }
           }
           return Mage::app()->getStore(); // if not found
      }
      

      然后在您的模板文件中调用该函数并将存储代码传递给它:

      $store = $this->getStoreByCode(Mage::app()->getStore()->getCode());
      echo $store->getUrl('comm/comm/redirect');
      

      我测试了它,它工作正常。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-06-29
        • 2013-02-15
        • 1970-01-01
        • 2011-02-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多