当访客用户已经添加了地址时,我必须从第 1 步(选择结帐方式)转到送货方式步骤。我在方法 saveCheckoutMethod 中的覆盖类 Mage_Checkout_Model_Type_Onepage 中尝试了以下代码。然而,这不起作用,客人转到帐单地址步骤,但消息“设置步骤 shipping_method”。打印到 Magento 日志。有没有办法直接进入运输方法步骤并以编程方式跳过两个地址步骤?
public function saveCheckoutMethod($method)
{
if (empty($method)) {
return array('error' => -1, 'message' => $this->_helper->__('Invalid data.'));
}
$this->getQuote()->setCheckoutMethod($method)->save();
$quote = $this->getQuote();
if($quote->getBillingAddress()->validate() && $quote->getShippingAddress()->validate())
{
$this->getCheckout()
->setStepData('billing', 'complete', false)
->setStepData('shipping', 'complete', false)
->setStepData('shipping_method', 'allow', true);
Mage::log("Setting step shipping_method.");
}
else
{
$this->getCheckout()->setStepData('billing', 'allow', true);
}
return array();
}