Php 如何获取magento商店的默认签出url?

Php 如何获取magento商店的默认签出url?,php,magento,Php,Magento,我正在尝试在Magento中以编程方式将用户发送到签出。我可以将它们发送到$this->_redirect('checkout/onepage')getCheckoutUrl()如果该站点只使用多片式签出,这将无法正常工作。Mage::helper('Checkout/url')->getCheckoutUrl();返回所有条件下的签出链接。它总是返回一页签出URL:$this->getUrl('checkout/onepage',数组('u secure'=>true))所以,如果网站只使用多

我正在尝试在Magento中以编程方式将用户发送到签出。我可以将它们发送到
$this->_redirect('checkout/onepage')默认情况下,签出链接由
Mage\u checkout\u Block\u Onepage\u link
类的
getCheckoutUrl()
函数返回。如果这很简单:

public function getCheckoutUrl()
{
    return $this->getUrl('checkout/onepage', array('_secure'=>true));
}
第三方扩展很可能会覆盖此类(我选中了OneStepCheckout 1.4,它的工作原理是这样的)。

您可以尝试使用

$checkout_link = Mage::helper('checkout/url')->getCheckoutUrl();
此返回签出链接适用于所有条件

  • 在使用任何扩展(如OnePagecheckout或OneStepcheckout)时
  • 如果使用了on扩展,它只返回基本的签出url

看起来这正是我需要的。然而,当我创建一个新的Mage\u Checkout\u Block\u Onepage\u Link对象时,它告诉我该函数没有定义。我最终在一个前台控制器中使用了这个函数
Mage::helper('Checkout/url')->getCheckoutUrl()
如果该站点只使用多片式签出,这将无法正常工作。
Mage::helper('Checkout/url')->getCheckoutUrl();返回所有条件下的签出链接。它总是返回一页签出URL:
$this->getUrl('checkout/onepage',数组('u secure'=>true))所以,如果网站只使用多芯片结账,它将不会很好地工作。我同意它并不总是工作。对于我们来说,使用Magento 1.9,它会返回http:///onestepcheckout/ 在尝试重定向到该URL时,Magento说“一页签出被禁用”。在cart.phtml中,它有
,即列出站点可用的所有签出方法。如果
getMethods()
只返回一个方法,则存在默认的签出URL。如果它返回多个方法呢?