Блокировка кнопки «Отправить» в плагине Art WooCommerce Order One Click
Про блокировку кнопки «Отправить» в форме созданной в плагине CF7 мы написали здесь. Но этот способ не сработает в плагине Art WooCommerce Order One Click, так как он подгружает форму через AJAX-технологии.
Чтобы защититься от многократного нажатия кнопки «Отправить» именно в плагине Art WooCommerce Order One Click версии 3.0 воспользуйтесь следующим кодом:
add_action( 'wp_footer', function () { ?>; <script> jQuery( document ).ready( function ( $ ) { $( document.body ).on( 'awooc_popup_ajax_trigger', function ( event, data ) { $( '.awooc-form-custom-order div.wpcf7 > form' ).on( 'submit', function ( e ) { $( e.target ).find( ':input[type=submit]' ).prop( 'disabled', true ); var wpcf7Elm = document.querySelector( '.wpcf7' ); wpcf7Elm.addEventListener( 'wpcf7submit', function ( event ) { jQuery( '.wpcf7-submit' ).prop( "disabled", false ); }, false ); wpcf7Elm.addEventListener( 'wpcf7invalid', function () { jQuery( '.wpcf7-submit' ).prop( "disabled", false ); }, false ); } ); } ); } ); </script> <?php }, 1000 ); |
Для версии Art WooCommerce Order One Click не выше 2.4.3 код будет следующий:
add_action( 'wp_footer', function () { ?> <script> jQuery( document ).ready( function ( $ ) { $( document.body ).on( 'awooc_popup_open_trigger', function ( event, data ) { $( '.awooc-form-custom-order div.wpcf7 > form' ).on( 'submit', function ( e ) { console.log( e.target ); $( e.target ).find( ':input[type=submit]' ).prop( 'disabled', true ); var wpcf7Elm = document.querySelector( '.wpcf7' ); wpcf7Elm.addEventListener( 'wpcf7submit', function ( event ) { jQuery( '.wpcf7-submit' ).prop( "disabled", false ); }, false ); wpcf7Elm.addEventListener( 'wpcf7invalid', function () { jQuery( '.wpcf7-submit' ).prop( "disabled", false ); }, false ); } ); } ); } ); </script> <?php }, 1000 ); |
Вставить его нужно в файл functions.php вашей темы/дочерней темы или в обе сразу, рекомендуем протестировать работу данного решения в каждом конкретном случае. После данного изменения файла functions.php кнопка «Отправить» во всплывающем окне должна блокироваться после однократного нажатия и до момента отправки заявки.


