WooCommerce绑定订单表单上的事件并使用AJAX提交表单(您可以在checkout.js中查看代码)。
这里是我的解决方案:
1.Replace原来的提交按钮用自己的按钮
中的functions.php
add_filter('woocommerce_order_button_html', function(){
return '<button class="new_submit button">Place Order</button>';
});
当新按钮,也不会直接提交订单。
2.Bind上的新按钮
jQuery(document).on('click', '.new_submit', function(e){
e.preventDefault();
if (do_the_validation()){
jQuery('form.checkout').submit();
} else {
return false;
}
})
同样的情况下,我会建议你做服务器端验证
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');
}
}
请出示你的代码? – ucheng