2017-07-07 18 views
0

こんにちは私はチェックアウトページでいくつかの問題を抱えています。ページ上の支払い方法を変更すると、自動的にチェックアウト注文が提出されます。私はこのajax呼び出しを無効にするには次のコードを試してくださいが、これはajaxの問題ではないようです。woocommerce woocommerce checkout支払い方法の変更を防ぐ

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")に変更すると、チェックアウトフォームは送信されません。この問題をプラグインに報告します開発者 – efirvida

関連する問題