Выполнить пользовательский js-код для моего пользовательского плагина оплаты на woocommerce checkout

Я создаю новый пользовательский плагин оплаты для моего веб-сайта Woo Commerce. I В этом мне нужно добавить некоторые пользовательские проверки для кредитной карты и некоторые другие поля ввода. Мне нужно добавить все эти проверки в отдельный файл js, и я хотел запустить функцию проверки только после успешного прохождения проверки javascript.

Я могу загрузить JS с помощью wp_enqueue_scripts функция, но мой код js не выполняется после нажатия кнопки оформления заказа.
Я хочу, чтобы при оформлении заказа сначала нужно было выполнить мой код, и на основе проверки проверки необходимо перейти к функции проверки.

3

Решение

WooCommerce связывает событие в форме заказа и использует AJAX для отправки формы (вы можете увидеть код в checkout.js).

Вот мое решение:

1. Замените оригинальную кнопку отправки своей собственной кнопкой.

в functions.php

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

При нажатии на новую кнопку он не будет отправлять форму заказа напрямую.

2. Привязать событие к новой кнопке

 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' );
}

}
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]