Запустите Javascript в Woocommerce, если страница равна X, а количество товаров в корзине равно Y - PullRequest
0 голосов
/ 14 мая 2018

Я пытаюсь запустить javascript (Sweet Alert) на страницах архивных магазинов Woocommerce, чтобы выполнить только в том случае, если в корзине 5 товаров, а страница равна 'url / leanshop /'.

Моя функция добавления в корзину использует AJAX. Приведенный ниже код вроде как работает ... но я не могу заставить его срабатывать при указанных выше условиях. В настоящее время он срабатывает только каждый раз, когда товар добавляется в корзину через AJAX.

Мой код пока:

add_action( 'wp_footer', 'items_in_cart_trigger' );
function items_in_cart_trigger() {

        global $woocommerce;
        // Set the minimum number of products in cart
        $maximum_num_products = 5;
        // Get the Cart's total number of products
        $cart_num_products = WC()->cart->cart_contents_count;

        // Compare values and if required amount of items in cart, display popup.
        if( $cart_num_products == $maximum_num_products && is_page( '/leanshop/' ) ) {

    ?>
      <script src="https://unpkg.com/sweetalert2@7.20.1/dist/sweetalert2.all.js"></script>
        <script type="text/javascript">
            (function($){
                $('body').on( 'added_to_cart', function(){
                    // Test output on JS console
                    console.log('added_to_cart'); 
                    // Call Sweet Alert PopUp Here
                  swal(
                    'You added all the items!',
                    'Proceed to checkout?',
                    'success')
                });
            })(jQuery);
        </script>
    <?php
}
}

UPDATE: Javascript работает со следующим оператором is_page () IF. Таким образом, проблема заключается в логике выше, где я пытаюсь подсчитать количество товаров в корзине и посмотреть, равно ли они значению , а на странице архива магазина. Кто-нибудь может предложить правильную логику кода Woocommerce для этого?

if( is_page('leanshop'))    {

1 Ответ

0 голосов
/ 14 мая 2018

Попробуйте:

if( $cart_num_products === $maximum_num_products && is_page( '/leanshop/' ) ) {

Чтобы проверить на равенство , использовать тройное равенство (при одинаковом типе) или двойное равенство (когда хотите принудительно ввести тип, но остерегайтесь).

...