ゲストユーザーがすでに住所を追加している場合、ステップ 1 (チェックアウト方法の選択) から配送方法のステップに移動する必要があります。メソッド saveCheckoutMethod のオーバーライドされたクラス Mage_Checkout_Model_Type_Onepage で次のコードを試しました。ただし、これは機能していません。ゲストは請求先住所のステップに移動しますが、「設定ステップ shipping_method」というメッセージが表示されます。Magento ログに出力されます。配送方法のステップに直接進み、プログラムで 2 つの住所ステップをスキップする方法はありますか?
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();
}