• File: woocommerce.js
  • Full Path: /home/chassiw/www/wp-content/themes/indutri/js/woocommerce.js
  • File size: 4.52 KB
  • MIME-type: text/plain
  • Charset: utf-8
(function($) {
   'use strict';

   /************* Quick view ****************/
   $.extend({
      quickview_init: function() {
         var self = this,
            $qvContainer = $('#gva-quickview'),
            $qvOverlay = $('<div class="mfp-bg gva-mfp-fade-in"></div>'),
            productId;
            self.$html = $('html');
            self.$body = $('body');
         self.$body.on('click', '.btn-quickview', function(e) {
            e.preventDefault();
            productId = $(this).data('product_id');
            
            if (productId) {
               self.$html.css('width', 'auto');
               $qvOverlay.appendTo(self.$body);
               $qvOverlay.addClass('show mfp-ready gva-loader');
               _LoadQuickView();
            }
         }); 
         
         var _LoadQuickView = function() {
            var ajaxUrl,
               data = {
                  product_id: productId
               };
            
            if (typeof wc_add_to_cart_params !== 'undefined') {
               ajaxUrl = wc_add_to_cart_params.wc_ajax_url.toString().replace('%%endpoint%%', 'indutri_ajax_load_product');
            } else {
               data['action'] = 'indutri_ajax_load_product';
            }
            
            window.gva_quickview_get_product = $.ajax({
               type: 'POST',
               url: ajaxUrl,
               data: data,
               dataType: 'html',
               cache: false,
               headers: {'cache-control': 'no-cache'},
               beforeSend: function() {
                  if (typeof window.gva_quickview_get_product === 'object') {
                     window.gva_quickview_get_product.abort();
                  }
               },
               error: function(XMLHttpRequest, textStatus, errorThrown) {
                  console.log('AJAX error - ' + errorThrown);
                  
                  self.$html.css('width', '');
                                          
                  $qvOverlay.removeClass('mfp-ready mfp-removing').remove();
               },
               success: function(data) {
                  $qvContainer.html(data);
                  
                  var $currentContainer = $qvContainer.children('#product-'+productId),
                     $productForm = $currentContainer.find('form.cart'),
                     $lastImg = $('#gva-quickview-images').find('img').last();
                  
                  $lastImg.one('load', function() { 
                     _qvShowModal();
                  });
               }
            });
         },
         
         _qvShowModal = function() {
            $.magnificPopup.open({
               mainClass: '',
               closeMarkup: '<a class="gva-close"></a>',
               removalDelay: 180,
               items: {
                  src: $qvContainer,
                  type: 'inline'
               },
               callbacks: {
                  open: function() {
                     _LoadSlider();
                     
                     $qvOverlay.one('touchstart.qv', function() {
                        $.magnificPopup.close();
                     });
                  },
                  beforeClose: function() {
                     $qvOverlay.addClass('mfp-removing');
                  },
                  close: function() {
                     self.$html.css('width', '');
                                          
                     $qvOverlay.removeClass('mfp-ready mfp-removing').remove(); 
                  }
               }
            });
         },
         
         /* Function: Re-init slider */
         _LoadSlider = function() {
            $("#gva-quickview-images").owlCarousel({
               singleItem : true,
               loop: false,
               nav: true, 
               items: 1,
               autoplay: false,
               autoplayTimeout: 5000,
               autoplayHoverPause: true,
               navText: [ '<i class="fas fa-chevron-left"></i>', '<i class="fas fa-chevron-right"></i>' ],
            });
         };
      }
   });
    
   $(document).ready(function(){
      $.quickview_init();
      $(document).on('.minicart-close', 'click', function(){
         $(this).parents('.cart').removeClass('open');
      })
   });

   var scrollToTop = function() {
      var scrollTo = $('#wp-main-content').offset().top - 100;
      $('html, body').stop().animate({
         scrollTop: scrollTo
      }, 400);
   };

})(jQuery);