Статьи о WordPress

Блокировка кнопки «Отправить» в плагине 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 кнопка «Отправить» во всплывающем окне должна блокироваться после однократного нажатия и до момента отправки заявки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *