3

私はwoo commerceウェブサイト用の新しいカスタム支払いプラグインを作成しています。私は、クレジットカードやその他の入力フィールドのカスタム検証を追加する必要があります。これらの検証をすべて別のjsファイルに追加する必要があり、javascriptの検証が正常に行われた後にのみ、チェックアウト機能を起動する必要がありました。woocommerceチェックアウトでカスタム支払いプラグインのカスタムjsコードを実行

wp_enqueue_scripts機能を使用してjsをロードすることはできますが、チェックアウトボタンクリック後にjsコードが実行されません。 チェックアウトに必要なものをクリックしてください。まず、コードを実行し、妥当性チェックに基づいて、チェックアウト機能を実行する必要があります。

+0

を行う推薦

2.Bind新しいボタンのイベント

jQuery(document).on('click', '.new_submit', function(e){ e.preventDefault(); if (do_the_validation()){ jQuery('form.checkout').submit(); } else { return false; } }) 

はあなたがコーディングを示していただけますか? – ucheng

答えて

3

WooCommerceはオーダーフォームのイベントをバインドし、AJAXを使用してフォームを送信します(checkout.jsのコードを参照してください)。ここで

は私のソリューションです:

1.Replaceオリジナルの独自のボタンと送信ボタンを

のfunctions.phpに

add_filter('woocommerce_order_button_html', function(){ 
    return '<button class="new_submit button">Place Order</button>'; 
}); 

新しいボタンをクリックすると、それはしません注文書を直接提出してください。また、私は、サーバー側の検証

add_action('woocommerce_checkout_process', 'my_validation'); 
function my_validation() { 
    //If it's invalid, add an error. 
    if (!do_validation()) { 
     wc_add_notice(__('Something goes wrong!'), 'error'); 
    } 

} 
関連する問題