私のmagentoサイトには、価格が0.00の製品があります。
そのため、商品をチェックアウトするときに支払い情報を非表示にします。
つまり、コードを変更しましたapp/code/core/Mage/Checkout/Block/Onepage/Abstract.php
この関数で _getStepCodes()
コードを次のように置き換えます。
$sub = Mage::getSingleton('checkout/cart')->getQuote()->getData();
$subtotal = $sub['base_subtotal'];
if($subtotal == 0){
return array('login', 'billing', 'shipping', 'shipping_method', 'review');
}else{
return array('login', 'billing', 'shipping', 'shipping_method', 'payment', 'review');
}
は表示Payment Information
されません。
次に、ここでやりたいことは次のとおりです。
商品の合計金額がゼロの場合は、 をOrder Review
クリックしてから に進みShipping methods
ます。
製品価格がゼロでない場合はPayment Information
、通常どおり取得します。
というわけでコードを書いていきますapp/code/core/Mage/Checkout/controllers/OnepageController.php
。
このページでは、関数を変更し、これを更新しました:
public function saveShippingMethodAction()
{
if ($this->_expireAjax()) {
return;
}
if ($this->getRequest()->isPost()) {
$data = $this->getRequest()->getPost('shipping_method', '');
$result = $this->getOnepage()->saveShippingMethod($data);
/*
$result will have erro data if shipping method is empty
*/
if(!$result) {
Mage::dispatchEvent('checkout_controller_onepage_save_shipping_method',
array('request'=>$this->getRequest(),
'quote'=>$this->getOnepage()->getQuote()));
$this->getOnepage()->getQuote()->collectTotals();
$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
$sub = Mage::getSingleton('checkout/cart')->getQuote()->getData();
$subtotal = $sub['base_subtotal'];
if($subtotal == 0){
$this->loadLayout('checkout_onepage_review');
$result['goto_section'] = 'review';
$result['update_section'] = array(
'name' => 'review',
'html' => $this->_getReviewHtml()
);
}else{
$result['goto_section'] = 'payment';
$result['update_section'] = array(
'name' => 'payment-method',
'html' => $this->_getPaymentMethodsHtml()
);
}
$this->getOnepage()->getQuote()->collectTotals()->save();
$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
}
}
}
製品価格がゼロより大きい場合、正しく機能しています。
ただし、製品価格がゼロの場合は、ステップ に進みませんOrder Review
。
しかし、fre バグにはjson
のコードがありOrder Review
ます。
その中で何が問題なのですか?
json
のコードをロードしOrder Review
ましfire bug
たが、サイトにはロードされませんでした。
どうすればこれを解決できますか?