Запуск и остановка счетчика Ajax Overlay в Woocommerce - PullRequest
0 голосов
/ 05 февраля 2019

Я разработал пользовательский платежный шлюз, который будет задерживать процесс оплаты через ajax.Я хотел бы показать тот же блесна, который в настоящее время используется в WooCommerce.

Это фрагмент моего кода jQuery:

function callAjax(){
    jQuery.ajax({
        type : "POST",
        url: '<?php echo site_url().'/?wc-api=custom_ function'; ?>',
        data: response,
        //data: {action:'gateway'},
        dataType : "json",
        cache: false,
        success: function(response) {                               
            //alert("Your vote could not be added");
            //alert(response);
            flag = true;
            // window.location = response.redirect;
            //console.log(response);
            return false;
        }
    }); 
}

setTimeout(
    function(){ callAjax(); 
}, 3000);

Так что я хотел бы сделать это:

please check with the image

Как запустить и остановить на странице оформления заказа оверлейные кружки ajax Woocommerce?

1 Ответ

0 голосов
/ 05 февраля 2019

Woocommerce использует jQuery BlockUI Plugin для создания наложения блокировки с анимационным блесном на некоторых событиях jQuery и на определенных страницах.

Ниже приведен пример на странице оформления заказа, который будетактивируйте спиннеры woocommerce с задержкой в ​​2 секунды после загрузки страницы и остановите их через 3 секунды:

add_action('wp_footer', 'spinners_example_on_checkout_jquery_script');
function spinners_example_on_checkout_jquery_script() {
    if ( is_checkout() && ! is_wc_endpoint_url() ) :
    ?>
    <script type="text/javascript">
    jQuery( function($){
        // Targeting checkout checkout payment and Review order table like Woocommerce does.
        var a = '.woocommerce-checkout-payment, .woocommerce-checkout-review-order-table';

        // Starting spinners with a delay of 2 seconds
        setTimeout(function() {
            // Starting spinners
            $(a).block({
                message: null,
                overlayCSS: {
                    background: "#fff",
                    opacity: .6
                }
            });

            console.log('start');

            // Stop spinners after 3 seconds
            setTimeout(function() {
                // Stop spinners
                $(a).unblock();

                console.log('stop');
            }, 5000);
        }, 2000);
    });
    </script>
    <?php
    endif;
}

Код сохраняется в файле function.php вашей активной дочерней темы (или активной темы).Протестировано и работает.

Плагин jQuery BlockUI официальная документация.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...