問題の説明については、適切ではないことがあります。ラジオボタンを使用して支払い方法を変更しても、注文は自動的に送信されません。私のインストールでは、このアクションは支払い方法の適切なペインを表示または非表示にします。示された枠には、実際に注文を送信するボタンがあります。以下のコードは、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;
});
他の何かが間違っていると私は思っています。
checkout.jsには、注文が送信される前にトリガされたイベントハンドラがあります。これらのイベントは、 'checkout_place_order'と 'checkout_place_order_' + wc_checkout_form.get_payment_method()です。このイベントハンドラの最後のものがfalseを返す場合、注文は送信されません。 –
@MagentaCuda、だから私は何をしなければならないのですか? – efirvida