2017-07-07 73 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