Uname: Linux premium294.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64
Software: LiteSpeed
PHP version: 8.1.32 [ PHP INFO ] PHP os: Linux
Server Ip: 104.21.80.1
Your Ip: 216.73.216.223
User: mjbynoyq (1574) | Group: mjbynoyq (1570)
Safe Mode: OFF
Disable Function:
NONE

name : zoo-woo-ajax.js
(function ($) {
    "use strict";
    jQuery(document).ready(function () {
        if (typeof wc_add_to_cart_params != 'undefined') {

            /* Ajax mini cart remove and Revert item remove from cart.*/
            $(document).on('click', '.woocommerce-mini-cart-item .remove', function (e) {
                e.preventDefault();
                var $thisbutton = $(this),
                    $mini_cart = $thisbutton.closest('.widget_shopping_cart_content'),
                    $cart_item = $thisbutton.closest('.woocommerce-mini-cart-item');
                $cart_item.addClass('loading');
                if (!$(this).hasClass('revert-cart-item')) {
                    $.post(wc_add_to_cart_params.wc_ajax_url.toString().replace('%%endpoint%%', 'remove_from_cart'), {cart_item_key: $thisbutton.data('cart_item_key')}, function (response) {
                        if (!response || !response.fragments) {
                            window.location = $thisbutton.attr('href');
                            return;
                        }
                        $thisbutton.addClass('revert-cart-item');

                        $mini_cart.find('.pre-remove').addClass('removed');
                        $cart_item.addClass('pre-remove');

                        $mini_cart.find('.woocommerce-mini-cart__total.total .woocommerce-Price-amount').replaceWith(response.fragments.cart_subtotal);
                        $mini_cart.find('.free-shipping-required-notice').replaceWith(response.fragments.free_shipping_cart_notice);
                        $thisbutton.closest('.widget_shopping_cart ').find('.total-cart-item').replaceWith(response.fragments['.total-cart-item']);

                        setTimeout(function () {
                            $mini_cart.find('.removed').remove();
                        }, 500);
                        if (response.fragments.cart_count == 0) {
                            $mini_cart.find('.wrap-bottom-mini-cart').fadeOut();
                        }

                        $cart_item.removeClass('loading');
                        $(document).trigger('zoo_after_remove_product_item', {
                            "fragments": response.fragments
                        });
                    }).fail(function () {
                        window.location = $thisbutton.attr('href');
                        return;
                    });
                } else {
                    var cart_item_key = $thisbutton.data('cart_item_key');
                    $.ajax({
                        type: 'POST',
                        dataType: 'json',
                        url: wc_add_to_cart_params.ajax_url,
                        data: {
                            action: "restore_cart_item",
                            cart_item_key: cart_item_key
                        },
                        error: function (XMLHttpRequest, textStatus, errorThrown) {
                            console.log('AJAX Restore ' + errorThrown);
                            console.log('AJAX Restore ' + cart_item_key);
                        },
                        success: function (data) {
                            $(document).trigger('zoo_after_restore_product_item', {
                                "fragments": data
                            });
                            $thisbutton.removeClass('revert-cart-item');

                            $cart_item.removeClass('pre-remove');
                            if (!$mini_cart.find('.wrap-bottom-mini-cart').is(":visible")) {
                                $mini_cart.find('.wrap-bottom-mini-cart').fadeIn();
                            }
                            $mini_cart.find('.woocommerce-mini-cart__total.total .woocommerce-Price-amount').replaceWith(data.cart_subtotal);
                            $mini_cart.find('.free-shipping-required-notice').replaceWith(data.free_shipping_cart_notice);
                            $thisbutton.closest('.widget_shopping_cart ').find('.total-cart-item').replaceWith(data['.total-cart-item']);
                            $cart_item.removeClass('loading');
                        }
                    });
                    return false;
                }
            });

            //Update mini top cart ajax
            $(document).on('added_to_cart', function (event, fragments) {
                if (!$('.cafe-canvas-cart')[0])
                    zoo_add_to_cart_mess(fragments['zoo_add_to_cart_message']);

            });
            /* End Ajax cart for shop loop product item*/

            //Refresh variations_form button added to cart when change option.
            $("form.variations_form").on("woocommerce_variation_select_change", function () {
                $(this).find('.cart-added').removeClass('cart-added');
            });

            /* Ajax Add to Cart for Single Product */
            $(document).on('click', 'button.single_add_to_cart_button:not(.disabled)', function (e) {

                var max = parseInt($(this).closest('form').find('input.qty').attr('max'));
                var qty = parseInt($(this).closest('form').find('input.qty').val());
                if (!!max && (max < qty)) {
                    return;
                }

                var $thisbutton = $(this),
                    $form = $thisbutton.closest('form.cart'),
                    id = $thisbutton.val(),
                    product_qty = $form.find('input[name=quantity]').val() || 1,
                    product_id = $form.find('input[name=product_id]').val() || id,
                    variation_id = $form.find('input[name=variation_id]').val() || 0;
                var variations = {};
                var cart_item_data = {};
                if(!product_id){
                    return true;
                }
                if($form.find('select')[0]&& !$form.hasClass('variations_form')){
                    return true;
                }else{
                    e.preventDefault();
                }
                if ($form.find('select')[0]&& variation_id != 0) {
                    $form.find('select').each(function () {
                        if ($(this).val() != '') {
                            variations[$(this).attr('name')] = $(this).val();
                        }
                    });
                    // $form.find('select').each(function () {
                    //     if ($(this).val() != '') {
                    //         cart_item_data[$(this).attr('name')] = $(this).val();
                    //     }
                    // });
                }
                if ($thisbutton.hasClass('cart-added')) {
                    window.location = wc_add_to_cart_params.cart_url;
                    return false;
                }
                if ($form.find('.woocommerce_gc_giftcard_form')[0]) {
                    return true;
                }
                var data = {
                    action: 'zoo_add_single_product_to_cart',
                    product_id: product_id,
                    product_sku: '',
                    quantity: product_qty,
                    variation_id: variation_id,
                    variations: variations,
                    cart_item_data: cart_item_data,
                };
                $(document.body).trigger('adding_to_cart', [$thisbutton, data]);
                $.ajax({
                    type: 'post',
                    url: wc_add_to_cart_params.ajax_url,
                    data: data,
                    beforeSend: function (response) {
                        $thisbutton.addClass('loading');
                    },
                    complete: function (response) {
                        $thisbutton.addClass('cart-added').removeClass('loading');
                    },
                    success: function (response) {
                        if (response.error && response.product_url) {
                            window.location = response.product_url;
                            return;
                        } else {
                            $(document.body).trigger('added_to_cart', [response.fragments, response.cart_hash, '']);
                            if (!$thisbutton.hasClass('zoo-buy-now')) {
                                let icon = $thisbutton.find('i').clone();
                                $(document).trigger('zoo_single_product_cart_added', {
                                    "response": response
                                });
                                $thisbutton.html(wc_add_to_cart_params.i18n_view_cart);
                                $thisbutton.prepend(icon);
                            } else {
                                window.location = wc_add_to_cart_params.cart_url;
                                return false;
                            }

                        }
                    },
                });
                return false;
            });
        }
        /* End Ajax Add to Cart for Single Product */

        //Function for Add to Cart message
        function zoo_add_to_cart_mess($zoo_mess) {
            if (!!$zoo_mess && $zoo_mess != undefined) {
                if ($('#zoo-add-to-cart-message')[0]) {
                    $('#zoo-add-to-cart-message').replaceWith($zoo_mess);
                } else {
                    $('body').append($zoo_mess);
                }
                setTimeout(function () {
                    $('#zoo-add-to-cart-message').addClass('active');
                }, 100);
                setTimeout(function () {
                    $('#zoo-add-to-cart-message').removeClass('active');
                }, 3500);
            }
        }

        /* Quick view js */
        $(document).on('click', '.product .btn-quick-view', function (e) {
            e.preventDefault();
            $('.zoo-mask-close').addClass('loading active mask-quick-view');
            var load_product_id = $(this).attr('data-productid');
            var data = {action: 'zoo_quick_view', product_id: load_product_id};
            $(this).parent().addClass('loading');
            var $this = $(this);
            $.ajax({
                url: ajaxurl,
                data: data,
                type: "POST",
                success: function (response) {
                    $('body').append(response);
                    $this.parent().removeClass('loading');
                    // Variation Form
                    var form_variation = $(document).find('#zoo-quickview-lb .variations_form');
                    form_variation.wc_variation_form();
                    form_variation.trigger('check_variations');
                    zoo_quick_view_gal();
                    //Sync button compare/wishlist quickview load.
                    if ($('#zoo-quickview-lb .zoo-wishlist-button')[0]) {
                        if (window.zooWishlist.model.exists($('#zoo-quickview-lb .zoo-wishlist-button').data('id'))) {
                            window.zooWishlist.view.renderBrowseButton($('#zoo-quickview-lb .zoo-wishlist-button'));
                        }
                    }
                    if ($('#zoo-quickview-lb .zoo-compare-button')[0]) {
                        if (window.zooProductsCompare.model.exists($('#zoo-quickview-lb .zoo-compare-button').data('id'))) {
                            window.zooProductsCompare.view.renderBrowseButton($('#zoo-quickview-lb .zoo-compare-button'));
                        }
                    }
                    $('.lazy-img:not(.loaded)').zoo_lazyImg();
                    setTimeout(function () {
                        $('#zoo-quickview-lb').css('opacity', '1');
                        $('#zoo-quickview-lb').css('top', '50%');
                    }, 100);
                }
            });
        });

        $(document).on('click', '.close-quickview, .zoo-mask-close.mask-quick-view', function (e) {
            e.preventDefault();
            zoo_close_quick_view();
        });
        //Close Quickview when click to compare/wish list.
        $(document).on('zoo_browse_wishlist', function () {
            zoo_close_quick_view();
        });
        $(document).on('zoo_browse_compare', function () {
            zoo_close_quick_view();
        });
        //Swatches gallery for quick view
        $(document).on('cleverswatch_update_gallery', function (event, response) {
            if ($('#zoo-quickview-lb')[0])
                zoo_quick_view_gal();
        });

        //Close Quickview;
        function zoo_close_quick_view() {
            $('.zoo-mask-close').removeClass('loading active mask-quick-view');
            $('#zoo-quickview-lb').css({'top': 'calc(50% + 150px)', 'opacity': '0'});
            setTimeout(function () {
                $('#zoo-quickview-lb').remove();
            }, 500)
        }

        //Quickview gallery
        function zoo_quick_view_gal() {
            if ($('.zoo-product-quick-view .wrap-main-product-gallery')[0]) {
                let thumb_num = $('.zoo-product-gallery.images').data('columns');
                if (typeof  $.fn.slick != 'undefined') {
                    $('.zoo-product-quick-view .wrap-main-product-gallery').slick({
                        slidesToShow: 1,
                        rows: 0,
                        slidesToScroll: 1,
                        focusOnSelect: true,
                        rtl: $('body.rtl')[0] ? true : false,
                        asNavFor: $('.wrap-list-thumbnail')[0] ? '.zoo-product-quick-view .wrap-list-thumbnail' : '',
                        prevArrow: '<span class="zoo-carousel-btn prev-item"><i class="zoo-icon-arrow-left"></i></span>',
                        nextArrow: '<span class="zoo-carousel-btn next-item"><i class="zoo-icon-arrow-right"></i></span>',
                    });
                    $('.zoo-product-quick-view .wrap-list-thumbnail').slick({
                        slidesToShow: thumb_num,
                        rows: 0,
                        slidesToScroll: 1,
                        focusOnSelect: true,
                        rtl: $('body.rtl')[0] ? true : false,
                        asNavFor: '.zoo-product-quick-view .wrap-main-product-gallery',
                        prevArrow: '<span class="zoo-carousel-btn prev-item"><i class="zoo-icon-arrow-left"></i></span>',
                        nextArrow: '<span class="zoo-carousel-btn next-item "><i class="zoo-icon-arrow-right"></i></span>',
                    });
                }
            }
        }

        /* End Quick view js */

        //Normally Ajax url, for multi language
        function normally_url_cart(url, parameterName, parameterValue, atStart) {
            var replaceDuplicates = true;
            var urlhash = '';
            var cl = url.length;
            if (url.indexOf('#') > 0) {
                cl = url.indexOf('#');
                urlhash = url.substring(url.indexOf('#'), url.length);
            }
            var sourceUrl = url.substring(0, cl);

            var urlParts = sourceUrl.split("?");
            var newQueryString = "";

            if (urlParts.length > 1) {
                var parameters = urlParts[1].split("&");
                for (var i = 0; (i < parameters.length); i++) {
                    var parameterParts = parameters[i].split("=");
                    if (!(replaceDuplicates && parameterParts[0] == parameterName)) {
                        if (newQueryString == "")
                            newQueryString = "?";
                        else
                            newQueryString += "&";
                        newQueryString += parameterParts[0] + "=" + (parameterParts[1] ? parameterParts[1] : '');
                    }
                }
            }
            if (newQueryString == "")
                newQueryString = "?";

            if (atStart) {
                newQueryString = '?' + parameterName + "=" + parameterValue + (newQueryString.length > 1 ? '&' + newQueryString.substring(1) : '');
            } else {
                if (newQueryString !== "" && newQueryString != '?')
                    newQueryString += "&";
                newQueryString += parameterName + "=" + (parameterValue ? parameterValue : '');
            }
            return urlParts[0] + newQueryString + urlhash;
        }
    })
})(jQuery);
© 2025 XylotrechusZ