2017-07-07 140 views
0

嗨我有一些結帳頁面的問題,當我更改頁面上的付款方式自動提款結帳順序,我想手動,使用按鈕。我嘗試下面的代碼來禁用ajax調用,但似乎這不是一個ajax問題。woocommerce防止結賬交付付款方式提交

function script_disabled() 
{ 
    wp_dequeue_script('wc-checkout'); 
} 

add_action('wp_enqueue_scripts', 'script_disabled'); 
+0

在checkout.js中,在提交訂單前觸發了事件處理程序。這些事件是'checkout_place_order'和'checkout_place_order_'+ wc_checkout_form.get_payment_method()。如果此事件處理程序的最後一個返回false,則不會提交訂單。 –

+0

@MagentaCuda,那我該怎麼辦? – efirvida

回答

1

關於您對問題的描述有些不太正確。使用單選按鈕更改付款方式不應該自動提交訂單。在我的安裝中,此操作僅顯示或隱藏付款方式的相應窗格。顯示的窗格實際上有提交訂單的按鈕。下面的代碼是防止提交AJAX調用的jQuery事件處理程序。然而,我不認爲這是你的問題的正確解決方案。您描述的行爲不是WooCommerce結帳頁面應如何工作。至少,它在我的安裝中不會有這種表現,這對於結賬頁面來說非常標準。

jQuery('form.checkout').on('checkout_place_order', function() { 
    var $payment_method = jQuery('form.checkout input[name="payment_method"]:checked').val(); 
    if (/* your condition, e.g. "$payment_method == 'paypal'" */) { 
     // prevent the submit AJAX call 
     alert('submit cancelled!'); 
     return false; 
    } 
    // allow the submit AJAX call 
    return true; 
}); 

我不會使用這個解決方案,因爲我認爲別的是錯的。

+0

感謝您的回覆。我認爲我在這個插件https://es.wordpress.org/plugins/woo-update-cart-on-quantity-change/中發現了問題。當我將選擇器從jQuery('body')。delegate(「。cart_item .qty」)更改爲$(「。cart_item .qty」)時,沒有提交結帳表單,我要將此問題報告給插件developpers – efirvida