📁 File Manager Pro
v10.0.3 | PHP: 8.2.31
Server: LiteSpeed
2026-07-03 15:05:15
📂
/ (Root)
/
home
/
orkouolp
/
web
/
orkofarms.com
/
wp-content
/
themes
/
martfury
/
js
📍 /home/orkouolp/web/orkofarms.com/wp-content/themes/martfury/js
🔄 Refresh
✏️
Editing: scripts.js
Writable
(function ($) { 'use strict'; var martfury = martfury || {}; martfury.init = function () { martfury.$body = $(document.body), martfury.$window = $(window), martfury.$header = $('#site-header'); // Preloader this.preLoader(); this.newLetterPopup(); // Header this.stickyHeader(); this.productSearchLabel(); this.headerMenu(); this.megaMenu(); this.instanceSearch(); this.topPromotion(); this.mobileMenu(); this.userMobileMenu(); this.headerIE(); this.headerRecentlyProducts(); // Page Header this.pageHeaderParallax(); // Blog this.postEntryFormat(); this.singleEntryFormat(); this.blogLoadingAjax(); this.relatedPost(); this.blogLayout(); // Lazy Load this.lazyLoad(); this.backToTop(); // Catalog this.catalogBanners(); this.productsTopCarousel(); this.collapseTheFilter(); this.productCategoriesWidget(); this.toolTipIcon(); this.searchLayeredNav(); this.productAttribute(); this.shopView(); this.addWishlist(); this.addCompare(); this.productQuickView(); this.variationImagesCarousel(); this.productTopCategories(); this.filterAjax(); this.catalogOpenCartMini(); this.productsLoadInfinite(); this.productCatWidget(); // Single Product this.hoverProductTabs(); this.productQuantity(); this.productThumbnail(); this.productVideo(); this.productGallery(); this.productDegree(); this.singleProductCarousel(); this.instagramCarousel(); this.productVatiation(); this.productVariationVideo(); this.addToCartAjax(); this.stickyProductInfo(); this.loginTabs(); this.buyNow(); this.wooTabToggle(); this.productMultiVendors(); // Footer this.recentlyFooterViewedProducts(); // Cart this.cartQuantity(); // Mobile this.filterOnMobile(); this.navigationMobile(); this.footerDropdown(); this.catalogSorting(); this.historyBack(); // vendor this.wcfm(); $(document.body).on('martfury_get_products_ajax_success', function () { martfury.toolTipIcon(); $(document.body).trigger('yith_wcwl_init'); }); martfury.$body.on('martfury_recently_viewed_loaded', function(e, data) { var $product = $(data).find('.product-list li'); $product.on('mousemove', function (e) { var el = $(this), left = e.pageX - el.offset().left + 10, right = left - el.find('.product-info').outerWidth(), top = e.pageY - el.offset().top + 10; if( el.is(':last-child') ) { el.find('.product-info') .show() .css({left: right, top: top}); } else { el.find('.product-info') .show() .css({left: left, top: top}); } }).on('mouseout', function () { $(this).find('.product-info').hide(); }); } ); }; martfury.isIEVersion = function () { var ie_version = window.navigator.userAgent; var isIE = false; var msie = ie_version.indexOf('MSIE '); if (msie > 0) { // IE 10 or older => return version number isIE = parseInt(ie_version.substring(msie + 5, ie_version.indexOf('.', msie)), 10); } var trident = ie_version.indexOf('Trident/'); if (trident > 0) { // IE 11 => return version number var rv = ie_version.indexOf('rv:'); isIE = parseInt(ie_version.substring(rv + 3, ie_version.indexOf('.', rv)), 10); } return isIE; }; martfury.headerIE = function () { var isIE = martfury.isIEVersion(); if (!isIE) { return; } var headerExtra = martfury.$header.find('.header-extras'), productSearch = headerExtra.find('.product-extra-search'), menuExtra = headerExtra.find('.extras-menu'); var headerExtraW = headerExtra.width(), menuExtraW = menuExtra.outerWidth(true), productSearchW = '60%'; productSearchW = 88 - ((menuExtraW / headerExtraW) * 100) + '%'; productSearch.width(productSearchW); }; // preloader martfury.preLoader = function () { if (!martfury.$body.hasClass('mf-preloader')) { return; } if (martfury.$body.hasClass('elementor-editor-active')) { $('#martfury-preloader').addClass('fade-in'); return; } NProgress.start(); $(document).ready(function () { $('#martfury-preloader').addClass('fade-in'); NProgress.done(); }); }; // Sticky Header martfury.stickyHeader = function () { if (!martfury.$body.hasClass('sticky-header')) { return; } var scrollTop = 0, $hmain = martfury.$header.find('.header-main'), heightMain = $hmain.outerHeight() - 18, $promotion = $('#top-promotion'), hPromotion = $promotion.length > 0 ? $promotion.outerHeight(true) : 0, $topbar = $('#topbar'), hTopbar = $topbar.length > 0 ? $topbar.outerHeight(true) : 0, hHeader = martfury.$header.outerHeight(true), hBody = martfury.$body.outerHeight(true); scrollTop = hTopbar + hPromotion + hHeader; if (hBody <= scrollTop + martfury.$window.height()) { return; } martfury.$window.on('scroll', function () { if ($promotion.length > 0 && $promotion.hasClass('invisible')) { scrollTop = hHeader + hTopbar; } if (martfury.$window.scrollTop() > scrollTop) { martfury.$header.addClass('minimized'); martfury.$header.css({ 'padding-top': heightMain }); } else { martfury.$header.removeClass('minimized'); martfury.$header.removeAttr('style'); } }); }; martfury.topPromotion = function () { var $topPromotion = $('#top-promotion'); if ($topPromotion.length < 1) { return; } // Toggle promotion $topPromotion.on('click', '.close', function (e) { e.preventDefault(); $topPromotion.slideUp().addClass('invisible'); }); }; /** * Off canvas cart toggle */ martfury.mobileMenu = function () { var $mobileMenu = $('#mf-els-modal-mobile').find('.primary-mobile-nav'); if (!martfury.$body.hasClass('mobile-version')) { $mobileMenu = $('#primary-mobile-nav'); } martfury.$header.on('click', '#mf-toggle-menu', function (e) { e.preventDefault(); martfury.$body.toggleClass('display-mobile-menu'); $mobileMenu.find('li').removeClass('active'); }); $mobileMenu.find('.menu .menu-item-has-children > a').prepend('<span class="toggle-menu-children"><i class="icon-plus"></i> </span>'); $mobileMenu.find('li.menu-item').removeClass('active'); if (martfury.$body.hasClass('submenus-mobile-icon')) { $mobileMenu.on('click', '.toggle-menu-children', function (e) { e.preventDefault(); openSubMenus($(this)); }); } else { $mobileMenu.on('click', '.menu-item-has-children > a', function (e) { e.preventDefault(); openSubMenus($(this)); }); } function openSubMenus($el) { $el.closest('li').siblings().find('ul').slideUp(); $el.closest('li').siblings().removeClass('active'); $el.closest('li').siblings().find('li').removeClass('active'); $el.closest('li').children('ul').slideToggle(); $el.closest('li').toggleClass('active'); } $mobileMenu.on('click', '.close-canvas-mobile-panel', function (e) { e.preventDefault(); martfury.$body.removeClass('display-mobile-menu'); }); $('#mf-off-canvas-layer').on('click', function (e) { e.preventDefault(); martfury.$body.removeClass('display-mobile-menu mb-filter-active mf-filter-active'); $('#navigation-mobile_cat').removeClass('active'); $('#mf-navigation-mobile').find('.navigation-mobile_search').removeClass('active'); $('#mf-navigation-mobile').find('.navigation-mobile_cart').removeClass('active'); }); martfury.$window.on('resize', function () { if (martfury.$window.width() > 1200) { martfury.$body.removeClass('display-mobile-menu'); } }); }; martfury.navigationMobile = function () { var $els = $('#mf-els-modal-mobile'), $search = $('#mf-search-mobile'), $primaryNav = $('#primary-mobile-nav'), $cats = $('#mf-category-mobile-nav'), $cart = $('#mf-cart-mobile'), $item = $els.find('.mf-els-item'); $('#mf-navigation-mobile').on('click', '.navigation-mobile_cat', function (e) { e.preventDefault(); var $this = $(this); $this.closest('.navigation-list').find('.navigation-mobile_search, .navigation-mobile_cart').removeClass('active'); navigationElsActive($this, $cats); }); $('#mf-navigation-mobile').on('click', '.navigation-mobile_search', function (e) { e.preventDefault(); var $this = $(this); $this.closest('.navigation-list').find('.navigation-mobile_cat, .navigation-mobile_cart').removeClass('active'); navigationElsActive($this, $search); }); martfury.$header.on('click', '#site-header-category--mobile', function (e) { e.preventDefault(); $item.removeClass('current'); $primaryNav.addClass('current'); $els.addClass('open'); martfury.$body.addClass('navigation-mobile-active'); }); $('#mf-off-canvas-layer').on('click', function (e) { e.preventDefault(); martfury.$body.removeClass('navigation-mobile-active'); $els.removeClass('open'); $cats.removeClass('current'); }); $cart.on('click', '.close-cart-mobile', function (e) { e.preventDefault(); martfury.$body.removeClass('navigation-mobile-active'); $els.removeClass('open'); $cart.removeClass('current'); $('#mf-navigation-mobile').find('.navigation-mobile_cart').removeClass('active'); }); $els.find('.primary-mobile-nav').on('click', '.close-mobile-nav', function (e) { e.preventDefault(); martfury.$body.removeClass('navigation-mobile-active'); $els.removeClass('open'); $('#navigation-mobile_cat').removeClass('active'); }); if (martfury.$body.hasClass('cart-panel-mobile')) { $('#mf-navigation-mobile').on('click', '.navigation-mobile_cart', function (e) { e.preventDefault(); var $this = $(this); $this.closest('.navigation-list').find('.navigation-mobile_search, .navigation-mobile_cat').removeClass('active'); navigationElsActive($this, $cart); }); martfury.$header.on('click', '#icon-cart-contents', function (e) { e.preventDefault(); $item.removeClass('current'); $cart.addClass('current'); $els.addClass('open'); $('#mf-navigation-mobile').find('.navigation-mobile_cart').addClass('active'); martfury.$body.addClass('navigation-mobile-active'); }); } function navigationElsActive($this, $el_item) { $els.removeClass('open'); martfury.$body.removeClass('navigation-mobile-active'); $item.removeClass('current'); $el_item.addClass('current'); if ($this.hasClass('active')) { $els.removeClass('open'); $this.removeClass('active'); martfury.$body.removeClass('navigation-mobile-active'); } else { $els.addClass('open'); $this.addClass('active'); martfury.$body.addClass('navigation-mobile-active'); } } }; /** * Off canvas user menu mobile toggle */ martfury.userMobileMenu = function () { var $mobileMenu = $('#primary-user-nav'); if ($mobileMenu.length < 1) { return; } martfury.$window.on('resize', function () { if (martfury.$window.width() < 1200) { martfury.$body.addClass('canvas-menu-mobile'); } else { martfury.$body.removeClass('canvas-menu-mobile'); } }).trigger('resize'); martfury.$header.find('.menu-item-account.logined').on('click', 'a', function (e) { if (martfury.$body.hasClass('canvas-menu-mobile')) { e.preventDefault(); martfury.$body.toggleClass('display-user-mobile'); } }); $mobileMenu.on('click', '.close-canvas-mobile-panel', function (e) { e.preventDefault(); martfury.$body.removeClass('display-user-mobile'); }); $('#mf-off-canvas-layer').on('click', function (e) { e.preventDefault(); martfury.$body.removeClass('display-user-mobile'); }); }; // Newsletter popup martfury.newLetterPopup = function () { var $modal = $('#mf-newsletter-popup'), days = parseInt(martfuryData.nl_days), seconds = parseInt(martfuryData.nl_seconds); if (days > 0 && document.cookie.match(/^(.*;)?\s*mf_newletter\s*=\s*[^;]+(.*)?$/)) { return; } if ($modal.length < 1) { return; } $(document).ready(function () { setTimeout(function () { $modal.addClass('open'); }, seconds * 1000); }); $modal.on('click', '.close-modal', function (e) { e.preventDefault(); closeNewsLetter(days); $modal.removeClass('open'); $modal.fadeOut(); }); $modal.on('click', '.n-close', function (e) { e.preventDefault(); closeNewsLetter(30); $modal.removeClass('open'); $modal.fadeOut(); }); $modal.find('.mc4wp-form').on('submit', function () { closeNewsLetter(days); }); $modal.find('.formkit-form').on('submit', function () { closeNewsLetter(days); }); function closeNewsLetter(days) { var date = new Date(), value = date.getTime(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); document.cookie = 'mf_newletter=' + value + ';expires=' + date.toGMTString() + ';path=/'; } }; // Back to top scroll martfury.backToTop = function () { var $scrollTop = $('#scroll-top'); martfury.$window.on('scroll', function () { if (martfury.$window.scrollTop() > martfury.$window.height()) { $scrollTop.addClass('show-scroll'); } else { $scrollTop.removeClass('show-scroll'); } }); // Scroll effect button top $scrollTop.on('click', function (event) { event.preventDefault(); $('html, body').stop().animate({ scrollTop: 0 }, 800 ); }); }; martfury.headerMenu = function () { if (martfury.$header.hasClass('header-department-bot')) { return; } if (martfury.$header.find('.products-cats-menu').length < 1) { return; } var leftDep = martfury.$header.find('.products-cats-menu').position().left; if (martfuryData.direction === 'true') { var wHeader = martfury.$header.find('.header-logo').width(), wDep = martfury.$header.find('.products-cats-menu').width(), rightDep = wHeader - leftDep - wDep + 15; martfury.$header.find('.toggle-product-cats').css({ right: rightDep * -1 }); } else { martfury.$header.find('.toggle-product-cats').css({ left: leftDep * -1 }); } }; martfury.megaMenu = function () { martfury.$header.find('.primary-nav .menu-item.is-mega-menu').each(function () { var wsubWidth = $(this).children('.dropdown-submenu').width(), parentWidth = $(this).closest('.col-header-menu').width(), wWidth = $(this).outerWidth(), offsetLeft = $(this).position().left + (wWidth / 2), offsetRight = (parentWidth - $(this).position().left) + (wWidth / 2), left = offsetLeft - (wsubWidth / 2), right = offsetRight - (wsubWidth / 2); if (right < 0) { $(this).removeClass('has-width').addClass('align-right'); } else if (left < 0) { $(this).removeClass('has-width').addClass('align-left'); } }); }; // Product Search martfury.productSearchLabel = function () { martfury.$header.on('change', '#header-search-product-cat', function () { var value = $(this).find('option:selected').text().trim(); martfury.$header.find('.product-cat-label').html(value); }); martfury.$header.find('.products-search').on('submit', function () { if ($(this).find('#header-search-product-cat').val() == '0') { $(this).find('#header-search-product-cat').removeAttr('name'); } }); }; // post format martfury.postEntryFormat = function () { if (!martfury.$body.hasClass('mf-blog-page')) { return; } var $entryFormat = $('.blog-wapper').find('.entry-format'); $entryFormat.find('.slides').not('.slick-initialized').slick({ rtl: (martfuryData.direction === 'true'), slidesToShow: 1, slidesToScroll: 1, infinite: false, prevArrow: '<span class="ion-ios-arrow-left slick-prev-arrow"></span>', nextArrow: '<span class="ion-ios-arrow-right slick-next-arrow"></span>' }); $('.blog-wapper').find('.entry-format').fitVids({customSelector: 'iframe, video'}); }; // tooltip icon martfury.toolTipIcon = function () { $('.catalog-sidebar').find('[data-rel=tooltip]').tooltip({ classes: {'ui-tooltip': 'martfury-tooltip'}, tooltipClass: 'martfury-tooltip', position: {my: 'center bottom', at: 'center top-13'}, create: function () { $('.ui-helper-hidden-accessible').remove(); } }); showToolTip(); $(document).on('yith_wcwl_fragments_loaded', function () { showToolTip(); }); $(document.body).on('removed_from_wishlist', function () { showToolTip(); }); $(document.body).on('added_to_wishlist', function () { showToolTip(); }); function showToolTip() { $('.mf-product-thumbnail, .mf-single-product:not(.mf-product-layout-3)').find('[data-rel=tooltip]').tooltip({ classes: {'ui-tooltip': 'martfury-tooltip'}, tooltipClass: 'martfury-tooltip', position: {my: 'center bottom', at: 'center top-13'}, create: function () { $('.ui-helper-hidden-accessible').remove(); } }); } $('.mf-product-thumbnail, .mf-single-product:not(.mf-product-layout-3)').find('.compare').tooltip({ content: function () { return $(this).html(); }, classes: {'ui-tooltip': 'martfury-tooltip'}, tooltipClass: 'martfury-tooltip', position: {my: 'center bottom', at: 'center top-13'}, create: function () { $('.ui-helper-hidden-accessible').remove(); } }); $(document.body).on('added_to_cart', function () { $('.mf-product-thumbnail').find('.added_to_cart').tooltip({ offsetTop: -15, content: function () { return $(this).html(); }, classes: {'ui-tooltip': 'martfury-tooltip'}, tooltipClass: 'martfury-tooltip', position: {my: 'center bottom', at: 'center top-13'}, create: function () { $('.ui-helper-hidden-accessible').remove(); } }); }); }; // add compare martfury.variationImagesCarousel = function () { var $variation = $('.woocommerce ul.products li.product').find('.mf-attr-swatches-slick'); $variation.not('.slick-initialized').slick({ rtl: (martfuryData.direction === 'true'), slidesToShow: 3, slidesToScroll: 3, infinite: false, prevArrow: '<span class="icon-chevron-left slick-prev-arrow"></span>', nextArrow: '<span class="icon-chevron-right slick-next-arrow"></span>' }); }; // add wishlist martfury.addWishlist = function () { martfury.$body.on('click', 'a.add_to_wishlist', function () { $(this).addClass('loading'); }); // update wishlist count martfury.$body.on('added_to_wishlist removed_from_wishlist cart_page_refreshed', function () { var ajax_url = martfuryData.wc_ajax_url.toString().replace('%%endpoint%%', 'update_wishlist_count'); $.post( ajax_url, function (data) { martfury.$header.find('.menu-item-wishlist .mini-item-counter').html(data); } ); }); $(document).on('yith_wcwl_fragments_loaded', function () { if (!martfury.$body.hasClass('single-product')) { return; } if (martfury.$body.find('#mf-product-fbt').length < 0) { return; } martfury.$body.find('#mf-product-fbt').find('a.add_to_wishlist').addClass('fbt-wishlist'); }); var $current_proid = 0; martfury.$body.on('added_to_wishlist', function (e, $el_wrap) { e.preventDefault(); $('ul.products li.product .yith-wcwl-add-button a').removeClass('loading'); if (martfury.$body.hasClass('single-product')) { if ($el_wrap.hasClass('fbt-wishlist')) { return; } } var $new_proid = parseInt($el_wrap.data('product-id')); if ($new_proid == $current_proid) { return; } $current_proid = $new_proid; var content = $el_wrap.data('product-title'); martfury.addedToWishlistNotice('', content, false, 'success'); }); }; martfury.addedToWishlistNotice = function ($message, $content, single, className, multiple) { if (typeof martfuryData.added_to_wishlist_notice === 'undefined' || !$.fn.notify) { return; } if (multiple) { $content += ' ' + martfuryData.added_to_wishlist_notice.added_to_wishlist_texts; } else { $content += ' ' + martfuryData.added_to_wishlist_notice.added_to_wishlist_text; } $message += '<a href="' + martfuryData.added_to_wishlist_notice.wishlist_view_link + '" class="btn-button">' + martfuryData.added_to_wishlist_notice.wishlist_view_text + '</a>'; if (single) { $message = '<div class="message-box">' + $message + '</div>'; } $.notify.addStyle('martfury', { html: '<div><i class="icon-checkmark-circle message-icon"></i><span data-notify-text/>' + $message + '</span><span class="close icon-cross2"></span> </div>' }); $.notify($content, { autoHideDelay: martfuryData.added_to_wishlist_notice.wishlist_notice_auto_hide, className: className, style: 'martfury', showAnimation: 'fadeIn', hideAnimation: 'fadeOut' }); }; // add compare martfury.addCompare = function () { martfury.$body.on('click', 'a.compare:not(.added)', function (e) { e.preventDefault(); var $el = $(this); $el.addClass('loading'); $el.closest('.product-inner').find('.compare:not(.loading)').trigger('click'); var compare = false; if ($(this).hasClass('added')) { compare = true; } if (compare === false) { var compare_counter = martfury.$header.find('#mini-compare-counter').html(); compare_counter = parseInt(compare_counter, 10) + 1; setTimeout(function () { martfury.$header.find('#mini-compare-counter').html(compare_counter); $el.removeClass('loading'); }, 2000); } else { $el.removeClass('loading'); } }); $(document).find('.compare-list').on('click', '.remove a', function (e) { e.preventDefault(); var compare_counter = $('#mini-compare-counter', window.parent.document).html(); compare_counter = parseInt(compare_counter, 10) - 1; if (compare_counter < 0) { compare_counter = 0; } $('#mini-compare-counter', window.parent.document).html(compare_counter); }); $(document).find('#yith-woocompare').on('click', '.yith_woocompare_clear', function (e) { e.preventDefault(); $('#mini-compare-counter', window.parent.document).html(0); }); $('.yith-woocompare-widget').on('click', 'li a.remove', function (e) { e.preventDefault(); var compare_counter = $header.find('#mini-compare-counter').html(); compare_counter = parseInt(compare_counter, 10) - 1; if (compare_counter < 0) { compare_counter = 0; } setTimeout(function () { $header.find('#mini-compare-counter').html(compare_counter); }, 2000); }); $('.yith-woocompare-widget').on('click', 'a.clear-all', function (e) { e.preventDefault(); setTimeout(function () { $header.find('#mini-compare-counter').html('0'); }, 2000); }); var $current_proid = 0; martfury.$body.on('added_to_compare', function (e, $el_wrap) { e.preventDefault(); var $new_proid = parseInt($el_wrap.data('product-id')); if ($new_proid == $current_proid) { return; } $current_proid = $new_proid; var content = $el_wrap.data('product-title'); martfury.addedToCompareNotice('', content, false, 'success'); }); }; martfury.addedToCompareNotice = function ($message, $content, single, className, multiple) { if (typeof martfuryData.added_to_compare_notice === 'undefined' || !$.fn.notify) { return; } if (multiple) { $content += ' ' + martfuryData.added_to_compare_notice.added_to_compare_texts; } else { $content += ' ' + martfuryData.added_to_compare_notice.added_to_compare_text; } $message += '<a href="' + martfuryData.added_to_compare_notice.compare_view_link + '" class="btn-button">' + martfuryData.added_to_compare_notice.compare_view_text + '</a>'; if (single) { $message = '<div class="message-box">' + $message + '</div>'; } $.notify.addStyle('martfury', { html: '<div><i class="icon-checkmark-circle message-icon"></i><span data-notify-text/>' + $message + '</span><span class="close icon-cross2"></span> </div>' }); $.notify($content, { autoHideDelay: martfuryData.added_to_compare_notice.compare_notice_auto_hide, className: className, style: 'martfury', showAnimation: 'fadeIn', hideAnimation: 'fadeOut' }); }; /** * Change product quantity */ martfury.productQuantity = function () { martfury.$body.on('click', '.quantity .increase, .quantity .decrease', function (e) { e.preventDefault(); var $this = $(this), $qty = $this.siblings('.qty'), current = 0, min = parseFloat($qty.attr('min')), max = parseFloat($qty.attr('max')), step = parseFloat($qty.attr('step')); if ($qty.val() !== '') { current = parseFloat($qty.val()); } else if ($qty.attr('placeholder') !== '') { current = parseFloat($qty.attr('placeholder')) } min = min ? min : 0; max = max ? max : current + 1; if ($this.hasClass('decrease') && current > min) { $qty.val(current - step); $qty.trigger('change'); } if ($this.hasClass('increase') && current < max) { $qty.val(current + step); $qty.trigger('change'); } if( $this.closest( '.wcboost-wishlist-item' ).length ) { if( $this.hasClass( 'increase' ) ) { $this.closest( '.wcboost-wishlist-item' ).find( '.qty' ).val(current + step); $this.closest( '.wcboost-wishlist-item' ).find( '.qty' ).trigger('change'); } if( $this.hasClass( 'decrease' ) ) { $this.closest( '.wcboost-wishlist-item' ).find( '.qty' ).val(current - step); $this.closest( '.wcboost-wishlist-item' ).find( '.qty' ).trigger('change'); } } }); }; /** * Change product quantity */ martfury.productThumbnail = function () { product_thumbnails_slider(); $('.woocommerce-product-gallery').on('product_thumbnails_slider', function(){ product_thumbnails_slider(); }); function product_thumbnails_slider() { var $gallery = $('.woocommerce-product-gallery'); var $video = $gallery.find('.woocommerce-product-gallery__image.mf-product-video'); martfury.$window.on('load', function () { $('.woocommerce-product-gallery').find('.woocommerce-product-gallery__image').each(function () { if ($(this).find('img').hasClass('lazy')) { var src = $(this).find('img').data('original'); $(this).find('img').attr('src', src); } }) }); $gallery.on('wc-product-gallery-after-init', function() { $gallery.imagesLoaded(function () { var $thumbnail = $gallery.find('.flex-control-thumbs'); if ($video.length > 0) { $('.woocommerce-product-gallery').addClass('has-video'); if ($('.woocommerce-product-gallery').hasClass('video-first')) { $thumbnail.find('li').first().append('<i class="i-video ion-play"></i>'); } else { $thumbnail.find('li').last().append('<i class="i-video ion-play"></i>'); } } if (martfury.$body.hasClass('mobile-version')) { return; } if ($thumbnail.length < 1) { return; } var columns = $gallery.data('columns'); var count = $thumbnail.find('li').length; if (count > columns) { if (!$('.mf-single-product').hasClass('mf-product-sidebar')) { $thumbnail.not('.slick-initialized').slick({ slidesToShow: columns, slidesToScroll: 1, focusOnSelect: true, vertical: true, infinite: false, prevArrow: '<span class="icon-chevron-up slick-prev-arrow"></span>', nextArrow: '<span class="icon-chevron-down slick-next-arrow"></span>', responsive: [ { breakpoint: 768, settings: { slidesToShow: 4 } }, { breakpoint: 480, settings: { slidesToShow: 3 } } ] }); $thumbnail.find('li.slick-current').trigger('click'); } else { $thumbnail.not('.slick-initialized').slick({ slidesToShow: columns, focusOnSelect: true, slidesToScroll: 1, infinite: false, prevArrow: '<span class="icon-chevron-left slick-prev-arrow"></span>', nextArrow: '<span class="icon-chevron-right slick-next-arrow"></span>' }); } } else { $thumbnail.addClass('no-slick'); } } ); }); } }; martfury.productVideo = function () { var $gallery = $('.woocommerce-product-gallery'); var $video = $gallery.find('.woocommerce-product-gallery__image.mf-product-video'); var $thumbnail = $gallery.find('.flex-control-thumbs'); if ($video.length < 1) { return; } product_video_slider(); $('.woocommerce-product-gallery').on('product_video_slider', function(){ product_video_slider(); }); function product_video_slider() { var found = false, last = false; $thumbnail.on('click', 'li', function () { var $video = $gallery.find('.mf-product-video'); var thumbsCount = $(this).siblings().length; last = true; if ($(this).index() == thumbsCount) { last = false; found = false; } if (!found && last) { var $iframe = $video.find('iframe'), $wp_video = $video.find('video.wp-video-shortcode'); if ($iframe.length > 0) { $iframe.attr('src', $iframe.attr('src')); } if ($wp_video.length > 0) { $wp_video[0].pause(); } found = true; } return false; }); $thumbnail.find('li').on('click', '.i-video', function (e) { e.preventDefault(); $(this).closest('li').find('img').trigger('click'); }); } }; /** * Show photoSwipe lightbox */ martfury.productGallery = function () { var $images = $('.woocommerce-product-gallery'); if (typeof martfuryData.product_gallery === 'undefined' || martfuryData.product_gallery != '1') { $images.on('click', '.woocommerce-product-gallery__image', function (e) { e.preventDefault(); }); return; } if (!$images.length) { return; } $images.find('.woocommerce-product-gallery__image').on('mouseenter', function () { $(this).closest('.woocommerce-product-gallery').find('.ms-image-view').removeClass('hide'); $(this).closest('.woocommerce-product-gallery').find('.ms-image-zoom').addClass('hide'); }); $images.find('.woocommerce-product-gallery__image').on('mouseleave', function () { $(this).closest('.woocommerce-product-gallery').find('.ms-image-view').addClass('hide'); $(this).closest('.woocommerce-product-gallery').find('.ms-image-zoom').removeClass('hide'); }); $images.on('click', '.woocommerce-product-gallery__image', function (e) { e.preventDefault(); if ($(this).hasClass('mf-product-video')) { return false; } var items = []; var $links = $(this).closest('.woocommerce-product-gallery').find('.woocommerce-product-gallery__wrapper').children('.woocommerce-product-gallery__image'); $links.each(function () { var $el = $(this); if ($el.hasClass('mf-product-video')) { items.push({ html: $el.find('.mf-video-content').html(), w: 1000, h: 1000 }); } else { items.push({ src: $el.children('a').attr('href'), w: $el.find('img').attr('data-large_image_width'), h: $el.find('img').attr('data-large_image_height') }); } }); var index = $links.index($(this)), options = { index: index, bgOpacity: 0.85, showHideOpacity: true, mainClass: 'pswp--minimal-dark', barsSize: {top: 0, bottom: 0}, captionEl: false, fullscreenEl: false, shareEl: false, tapToClose: true, tapToToggleControls: false }; var lightBox = new PhotoSwipe(document.getElementById('pswp'), window.PhotoSwipeUI_Default, items, options); lightBox.init(); lightBox.listen('close', function () { $('.mf-video-wrapper').find('iframe').each(function () { $(this).attr('src', $(this).attr('src')); }); $('.mf-video-wrapper').find('video').each(function () { $(this)[0].pause(); }); }); }); }; /** * Show product 360 degree */ martfury.productDegree = function () { if (typeof martfuryData.product_degree === 'undefined') { return; } var $product_degrees = $('.woocommerce-product-gallery .product-degree-images'); if ($product_degrees.length < 1) { return; } if (martfuryData.product_degree.length < 1) { return; } var degree = '', $pswp = $('#product-degree-pswp'); $product_degrees.on('click', function (e) { e.preventDefault(); martfury.openModal($pswp); if ($pswp.hasClass('init')) { return; } $pswp.addClass('init'); var imgArray = martfuryData.product_degree.split(','), images = []; for (var i = 0; i < imgArray.length; i++) { images.push(imgArray[i]); } degree = $pswp.find('.mf-product-gallery-degree').ThreeSixty({ totalFrames: images.length, // Total no. of image you have for 360 slider endFrame: images.length, // end frame for the auto spin animation currentFrame: 1, // This the start frame for auto spin imgList: $pswp.find('.product-degree-images'), // selector for image list progress: '.mf-gallery-degree-spinner', // selector to show the loading progress imgArray: images, // path of the image assets height: 500, width: 830, navigation: true }); $pswp.find('.product-degree-images').imagesLoaded(function () { $pswp.find('.nav_bar').removeClass('hide'); }); $pswp.on('click', '.degree-pswp-close, .degree-pswp-bg', function () { degree.stop(); $(this).removeClass('play'); }); }); $pswp.on('click', '.degree-pswp-close, .degree-pswp-bg', function () { martfury.closeModal($pswp); }); }; /** * Change product quantity in cart page */ martfury.cartQuantity = function () { if (!martfury.$body.hasClass('woocommerce-cart')) { return; } if (martfuryData.quantity_ajax != '1') { return; } martfury.$body.on('click', '.quantity .increase, .quantity .decrease', function (e) { e.preventDefault(); martfury.$body.find('button[name="update_cart"]').trigger('click'); }); martfury.$body.on('keydown', '.quantity .qty', function (event) { if (isNaN(event.key)) { event.preventDefault(); } } ); var debounceTimeout = null; martfury.$body.on('keyup', '.quantity .qty', function (e) { e.preventDefault(); if ( debounceTimeout ) { clearTimeout( debounceTimeout ); } debounceTimeout = setTimeout( function() { martfury.$body.find('button[name="update_cart"]').trigger('click'); }, 500 ); }); }; /** * Open modal * * @param $modal */ martfury.openModal = function ($modal) { $modal.fadeIn(); $modal.addClass('open'); }; /** * Close modal */ martfury.closeModal = function ($modal) { $modal.fadeOut(function () { $(this).removeClass('open'); }); }; /** * Change product quantity */ martfury.hoverProductTabs = function () { var $el, leftPos, newWidth, $origWidth, childWidth, $mainNav = $('.mf-single-product .woocommerce-tabs').find('ul.wc-tabs'); if ($mainNav.length < 1) { return; } $mainNav.append('<li id="tl-wc-tab" class="tl-wc-tab"></li>'); var $magicLine = $('#tl-wc-tab'); var $childActive = $mainNav.children('li.active').length ? $mainNav.children('li.active') : $mainNav.children('li').first(); childWidth = $childActive.outerWidth(); $magicLine .width(childWidth) .css('left', $childActive.position().left) .data('origLeft', $magicLine.position().left) .data('origWidth', $magicLine.width()); $origWidth = $magicLine.data('origWidth'); $mainNav.children('li').on('mouseenter', function () { $el = $(this); newWidth = $el.outerWidth(); leftPos = $el.position().left; $magicLine.stop().animate({ left: leftPos, width: newWidth }); }); $mainNav.children('li').on('mouseleave', function () { $magicLine.stop().animate({ left: $magicLine.data('origLeft'), width: $origWidth }); }); $mainNav.on('click', 'li', function () { $el = $(this); $origWidth = newWidth = $el.outerWidth(); leftPos = $el.position().left; $magicLine.stop().animate({ left: leftPos, width: newWidth }); $magicLine .data('origLeft', leftPos) .data('origWidth', newWidth); }); }; martfury.searchLayeredNav = function () { var $widgets = $('.mf-widget-layered-nav'); if ($widgets.length < 1) { return; } $widgets.on('keyup', '.mf-input-search-nav', function (e) { var valid = false; if (typeof e.which == 'undefined') { valid = true; } else if (typeof e.which == 'number' && e.which > 0) { valid = !e.ctrlKey && !e.metaKey && !e.altKey; } if (!valid) { return; } var val = $(this).val(); if (typeof val === 'number') { val = '' + val; } var filter = val.toUpperCase(), widget = $(this).closest('.mf-widget-layered-nav'), ul = widget.find('.woocommerce-widget-layered-nav-list'), items = ul.children('.wc-layered-nav-term'); items.each(function () { var a = $(this).find('a').data('title'); if (typeof a === 'number') { a = '' + a; } a = a.toUpperCase(); if (a.indexOf(filter) > -1) { $(this).show(); } else { $(this).hide(); } }); var heightUL = ul.data('height'); if (ul.height() < parseInt(heightUL)) { widget.addClass('no-scroll'); } else { widget.removeClass('no-scroll'); } }); }; /** * Product instance search */ martfury.instanceSearch = function () { if (martfuryData.ajax_search != '1') { return; } var xhr = null, searchCache = {}, $form = martfury.$body.find('form.products-search'); $form.on('keyup', '.search-field', function (e) { var valid = false; if (typeof e.which == 'undefined') { valid = true; } else if (typeof e.which == 'number' && e.which > 0) { valid = !e.ctrlKey && !e.metaKey && !e.altKey; } if (!valid) { return; } if (xhr) { xhr.abort(); } var $currentForm = $(this).closest('.products-search'), $search = $currentForm.find('input.search-field'); if ($search.val().length < 2) { $currentForm.removeClass('searching searched actived found-products found-no-product invalid-length'); } search($currentForm); }).on('change', '#header-search-product-cat', function () { if (xhr) { xhr.abort(); } var $currentForm = $(this).closest('.products-search'); search($currentForm); }).on('focusout', '.search-field', function () { var $currentForm = $(this).closest('.products-search'), $search = $currentForm.find('input.search-field'); if ($search.val().length < 2) { $currentForm.removeClass('searching searched actived found-products found-no-product invalid-length'); } }); $(document).on('click', function (e) { if (!$form.hasClass('actived')) { return; } var target = e.target; if ($(target).closest('.products-search').length < 1) { $form.removeClass('searching searched actived found-products found-no-product invalid-length'); } }); /** * Private function for search */ function search($currentForm) { var $search = $currentForm.find('input.search-field'), keyword = $search.val(), cat = 0, $results = $currentForm.find('.search-results'); if ($currentForm.find('#header-search-product-cat').length > 0) { cat = $currentForm.find('#header-search-product-cat').val(); } if (keyword.trim().length < 2) { $currentForm.removeClass('searching found-products found-no-product').addClass('invalid-length'); return; } $currentForm.removeClass('found-products found-no-product').addClass('searching'); var keycat = keyword + cat; if (keycat in searchCache) { var result = searchCache[keycat]; $currentForm.removeClass('searching'); $currentForm.addClass('found-products'); $results.html(result.products); $(document.body).trigger('martfury_ajax_search_request_success', [$results]); $currentForm.removeClass('invalid-length'); $currentForm.addClass('searched actived'); } else { var data = { 'term': keyword, 'nonce': martfuryData.nonce, 'cat': cat, 'search_type': martfuryData.search_content_type }, ajax_url = martfuryData.wc_ajax_url.toString().replace('%%endpoint%%', 'martfury_search_products'); xhr = $.post( ajax_url, data, function (response) { var $products = response.data; searchFormResult($currentForm, $results, $products, keycat); } ); } } function searchFormResult($currentForm, $results, $products, keycat) { $currentForm.removeClass('searching'); $currentForm.addClass('found-products'); $results.html($products); $currentForm.removeClass('invalid-length'); $(document.body).trigger('martfury_ajax_search_request_success', [$results]); // Cache searchCache[keycat] = { found: true, products: $products }; $currentForm.addClass('searched actived'); } }; // single entry thumbnail martfury.singleEntryFormat = function () { if (!martfury.$body.hasClass('single-post')) { return; } var $entryFormat = $('#mf-single-entry-format'); $entryFormat.find('.slides').not('.slick-initialized').slick({ rtl: (martfuryData.direction === 'true'), slidesToShow: 1, slidesToScroll: 1, infinite: false, prevArrow: '<span class="ion-ios-arrow-left slick-prev-arrow"></span>', nextArrow: '<span class="ion-ios-arrow-right slick-next-arrow"></span>' }); $entryFormat.fitVids({customSelector: 'iframe, video'}); }; // Blog isotope martfury.blogLayout = function () { if (!martfury.$body.hasClass('blog-layout-masonry')) { return; } martfury.$body.imagesLoaded(function () { martfury.$body.find('.mf-post-list').isotope({ itemSelector: '.blog-wapper', layoutMode: 'masonry' }); }); }; // Related Post martfury.relatedPost = function () { if (!martfury.$body.hasClass('single-post')) { return; } var $related = $('#mf-related-posts').find('.related-posts-list'); $related.not('.slick-initialized').slick({ rtl: (martfuryData.direction === 'true'), slidesToShow: 3, slidesToScroll: 1, dots: true, infinite: false, arrows: false, responsive: [ { breakpoint: 768, settings: { slidesToShow: 2 } }, { breakpoint: 480, settings: { slidesToShow: 1 } } ] }); $related.on('afterChange', function () { martfury.lazyLoad(); }); }; // Loading Ajax martfury.blogLoadingAjax = function () { martfury.$window.on('scroll', function () { if (martfury.$body.find('#mf-infinite-loading').is(':in-viewport')) { martfury.$body.find('#mf-infinite-loading').trigger('click'); } }).trigger('scroll'); // Blog page martfury.$body.on('click', '#mf-infinite-loading', function (e) { e.preventDefault(); if ($(this).data('requestRunning')) { return; } $(this).data('requestRunning', true); var $postList = martfury.$body.find('.mf-post-list'), $pagination = $(this).parents('.navigation'); $.get( $(this).closest('.page-numbers').attr('href'), function (response) { var content = $(response).find('.mf-post-list').children('.blog-wapper'), $pagination_html = $(response).find('.navigation').html(); $pagination.html($pagination_html); $postList.append(content); $pagination.find('a').data('requestRunning', false); martfury.lazyLoad(); martfury.postEntryFormat(); } ); }); }; martfury.pageHeaderParallax = function () { if (!$('.page-header').hasClass('page-header-sliders')) { return; } var $pageHeader = $('.page-header-sliders'), speed = $pageHeader.data('speed'), autoplay = $pageHeader.data('auto'); $pageHeader.find('ul').not('.slick-initialized').slick({ rtl: (martfuryData.direction === 'true'), slidesToShow: 1, slidesToScroll: 1, infinite: true, autoplaySpeed: speed, autoplay: autoplay, arrows: false }); $pageHeader.on('click', '.slick-prev-arrow', function () { $pageHeader.find('ul').slick('slickPrev'); }); $pageHeader.on('click', '.slick-next-arrow', function () { $pageHeader.find('ul').slick('slickNext'); }); }; /** * LazyLoad */ martfury.lazyLoad = function () { martfury.$body.find('img.lazy').lazyload({ load: function () { $(this).removeClass('lazy'); } }); martfury.$window.on('load', function () { $('.mf-products-list-carousel').find('img.lazy').lazyload({ load: function () { $(this).removeClass('lazy'); } }).trigger('appear'); }); }; // Recently Viewed Products martfury.recentlyFooterViewedProducts = function () { footerRecentlyViewed(); footerBotRecentlyProducts(); function footerRecentlyViewed() { var $recently = $('#footer-recently-viewed'); if ($recently.length < 1) { return; } if (!$recently.hasClass('load-ajax')) { martfury.recentlyViewedCarousel($recently); martfury.lazyLoad(); martfury.$body.trigger('martfury_recently_viewed_loaded', $recently); } else { martfury.$window.on('scroll', function () { if (martfury.$body.find('#footer-recently-viewed').is(':in-viewport')) { footerRecentlyViewedAJAX($recently); } }).trigger('scroll'); } } function footerBotRecentlyProducts() { var $history = $('#footer-history-products'), found = true, $recently = $('#footer-bot-recently-viewed'), $layer = $('#mf-off-canvas-layer'); if ($history.length < 1) { return; } $history.on('click', '.recently-title', function (e) { e.preventDefault(); $recently.addClass('load-ajax'); $layer.toggleClass('opened'); $recently.slideToggle(400, function () { if (found) { footerRecentlyViewedAJAX($recently); found = false; } }); $(this).toggleClass('active'); }); $layer.on('click', function () { $layer.removeClass('opened'); $history.find('.recently-title').removeClass('active'); $recently.slideUp(400); }); } function footerRecentlyViewedAJAX($recently) { if ($recently.length < 1) { return; } if (!$recently.hasClass('load-ajax')) { return; } if ($recently.hasClass('loaded')) { return; } if ($recently.data('requestRunning')) { return; } $recently.data('requestRunning', true); var data = { nonce: martfuryData.nonce }, ajax_url = martfuryData.wc_ajax_url.toString().replace('%%endpoint%%', 'martfury_footer_recently_viewed'); $.post( ajax_url, data, function (response) { $recently.html(response.data); if ($recently.find('.product-list').hasClass('no-products')) { $recently.addClass('no-products'); } martfury.lazyLoad(); martfury.recentlyViewedCarousel($recently); $recently.addClass('loaded'); $recently.data('requestRunning', false); martfury.$body.trigger('martfury_recently_viewed_loaded', $recently); } ); } }; martfury.headerRecentlyProducts = function () { var $recently = $('#header-recently-viewed'); if ($recently.length < 1) { return; } if (!$recently.hasClass('load-ajax')) { martfury.recentlyViewedCarousel($recently); martfury.lazyLoad(); martfury.$body.trigger('martfury_recently_viewed_loaded', $recently); } else { martfury.$header.find('.recently-title').on('mouseenter', function () { headerRecentlyViewedAJAX($recently); }); } function headerRecentlyViewedAJAX($recently) { if ($recently.data('requestRunning')) { return; } if( $recently.hasClass('loaded')) { return; } $recently.data('requestRunning', true); var data = { nonce: martfuryData.nonce }, ajax_url = martfuryData.wc_ajax_url.toString().replace('%%endpoint%%', 'martfury_header_recently_viewed'); $.post( ajax_url, data, function (response) { $recently.html(response.data); if ($recently.find('.product-list').hasClass('no-products')) { $recently.addClass('no-products'); } martfury.lazyLoad(); martfury.recentlyViewedCarousel($recently); $recently.data('requestRunning', false); $recently.addClass('loaded'); martfury.$body.trigger('martfury_recently_viewed_loaded', $recently); } ); } }; martfury.recentlyViewedCarousel = function ($recently) { var $selector = $recently.find('.product-list'); if ($selector.hasClass('no-products')) { return; } var columns = parseInt($recently.data('columns')); $selector.not('.slick-initialized').slick({ rtl: (martfuryData.direction === 'true'), slidesToShow: columns, slidesToScroll: columns, arrows: true, infinite: false, dots: true, prevArrow: '<span class="ion-ios-arrow-left slick-prev-arrow"></span>', nextArrow: '<span class="ion-ios-arrow-right slick-next-arrow"></span>', responsive: [ { breakpoint: 1500, settings: { slidesToShow: parseInt(columns) > 8 ? 8 : columns, slidesToScroll: parseInt(columns) > 8 ? 8 : columns } }, { breakpoint: 1200, settings: { slidesToShow: 6, slidesToScroll: 6 } }, { breakpoint: 800, settings: { slidesToShow: 4, slidesToScroll: 4 } }, { breakpoint: 600, settings: { slidesToShow: 3, slidesToScroll: 3 } } ] }); $selector.on('afterChange', function () { martfury.lazyLoad(); }); }; // Catalog Banners Carousel martfury.catalogBanners = function () { var $banners = $('#mf-catalog-banners'); if ($banners.length <= 0) { return; } var number = $banners.data('columns'), autoplay = $banners.data('autoplay'), infinite = false, speed = 1000; if (autoplay > 0) { infinite = true; speed = autoplay; autoplay = true; } else { autoplay = false; } $banners.not('.slick-initialized').slick({ rtl: (martfuryData.direction === 'true'), slidesToShow: 1, slidesToScroll: 1, autoplaySpeed: speed, autoplay: autoplay, infinite: infinite, prevArrow: '<span class="icon-chevron-left slick-prev-arrow"></span>', nextArrow: '<span class="icon-chevron-right slick-next-arrow"></span>' }); $banners.on('afterChange', function () { martfury.lazyLoad(); }); }; // Products Top Carousel martfury.productsTopCarousel = function () { var $products = $('.mf-products-top-carousel'); if ($products.length <= 0) { return; } $products.each(function () { var number = $(this).data('columns'), autoplay = $(this).data('autoplay'), infinite = false, speed = 1000; if (autoplay > 0) { infinite = true; speed = autoplay; autoplay = true; } else { autoplay = false; } $(this).find('ul.products').not('.slick-initialized').slick({ rtl: (martfuryData.direction === 'true'), slidesToShow: number, slidesToScroll: number, autoplaySpeed: speed, autoplay: autoplay, infinite: infinite, dots: true, prevArrow: $(this).find('.slick-prev-arrow'), nextArrow: $(this).find('.slick-next-arrow'), responsive: [ { breakpoint: 992, settings: { slidesToShow: parseInt(number) > 3 ? 3 : number, slidesToScroll: parseInt(number) > 3 ? 3 : number } }, { breakpoint: 767, settings: { slidesToShow: 2, slidesToScroll: 2 } } ] }); $(this).on('afterChange', function () { martfury.lazyLoad(); }); }); }; // Collapse The Filter martfury.collapseTheFilter = function () { if (typeof martfuryData.collapse_catalog_filter === 'undefined') { return; } var $widget = $('.catalog-sidebar .widget'); $widget.each(function () { var $this = $(this); if ($this.length <= 0) { return; } if (martfuryData.collapse_catalog_filter.status == 'close') { $this.find('.widget-title').siblings().addClass('closed'); $this.find('.widget-title').addClass('non-active'); } else { $this.find('.widget-title').addClass('active'); } $this.on('click', '.widget-title', function (e) { e.preventDefault(); $(this).siblings().slideToggle(); $(this).siblings().toggleClass('opened'); $(this).toggleClass('active no-active'); }); martfury.searchLayeredNav(); }); }; // Toggle Tab content on mobile martfury.wooTabToggle = function () { if (typeof martfuryData.product_collapse_tab === 'undefined') { return; } var $tab = $('.mf-woo-tabs .mf-Tabs-panel'); $tab.each(function () { var $this = $(this), id = $this.attr('id'), $target = $('#' + id).find('.tab-title'); if (martfuryData.product_collapse_tab.status == 'close') { $target.siblings('.tab-content-wrapper').addClass('closed'); } else { $target.addClass('active'); } $target.on('click', function (e) { e.preventDefault(); $(this).siblings('.tab-content-wrapper').slideToggle().toggleClass('opened'); $(this).toggleClass('active'); }) }); }; // Product Categories martfury.productCategoriesWidget = function () { var $categories = $('.mf_widget_product_categories, .wcv.widget_product_categories'); if ($categories.length <= 0) { return; } $categories.find('ul.children').closest('li').prepend('<span class="cat-menu-close"><i class="icon-chevron-down"></i> </span>'); $categories.find('li.current-cat-parent, li.current-cat, li.current-cat-ancestor').addClass('opened').children('.children').show(); $categories.on('click', '.cat-menu-close', function (e) { e.preventDefault(); $(this).closest('li').children('.children').slideToggle(); $(this).closest('li').toggleClass('opened'); }) }; // Product Categories martfury.productTopCategories = function () { var $categories = $('.mf-catalog-top-categories'); if ($categories.length <= 0) { return; } $categories.on('click', '.cat-menu-close', function (e) { e.preventDefault(); $(this).closest('li').children('.sub-categories').slideToggle(); $(this).closest('li').toggleClass('opened'); }) }; // Product Attribute martfury.productAttribute = function () { var oImgSrc = '', oImgSrcSet = ''; martfury.$body.on('mouseover', '.mf-swatch-image', function (e) { e.preventDefault(); var $mainImages = $(this).closest('li.product').find('.mf-product-thumbnail'), $oriImage = $mainImages.find('img'); oImgSrc = $oriImage.attr('src'); oImgSrcSet = $oriImage.attr('srcset'); var imgSrc = $(this).find('img').attr('src'), imgSrcSet = $(this).find('img').attr('srcset'); $oriImage.attr('src', imgSrc); if (imgSrcSet) { $oriImage.attr('srcset', imgSrcSet); } }).on('mouseout', '.mf-swatch-image', function (e) { e.preventDefault(); var $mainImages = $(this).closest('li.product').find('.mf-product-thumbnail'), $oriImage = $mainImages.find('img'); if (oImgSrc) { $oriImage.attr('src', oImgSrc); } if (oImgSrcSet) { $oriImage.attr('srcset', oImgSrcSet); } }); martfury.$body.on('mouseover', '.mf-attr-swatches', function (e) { e.preventDefault(); var $mainImages = $(this).closest('li.product').find('.mf-product-thumbnail'); $mainImages.addClass('hover-swatch'); }).on('mouseout', '.mf-attr-swatches', function (e) { e.preventDefault(); var $mainImages = $(this).closest('li.product').find('.mf-product-thumbnail'); $mainImages.removeClass('hover-swatch'); }); }; /** * Shop view toggle */ martfury.shopView = function () { martfury.$body.on('click', '.mf-shop-view', function (e) { e.preventDefault(); var $el = $(this), view = $el.data('view'); if ($el.hasClass('current')) { return; } martfury.$body.find('.mf-shop-view').removeClass('current'); $el.addClass('current'); martfury.$body.removeClass('shop-view-grid shop-view-list').addClass('shop-view-' + view); document.cookie = 'shop_view=' + view + ';domain=' + window.location.host + ';path=/'; $(document.body).trigger('martfury_shop_view_after_change'); }); $(document.body).on('martfury_shop_view_after_change', function () { martfury.lazyLoad(); }); }; //related & upsell slider martfury.singleProductCarousel = function () { var $upsells = martfury.$body.find('.up-sells ul.products'), $related = martfury.$body.find('.related.products ul.products'); if ($upsells.length <= 0 && $related.length <= 0) { return } var upsells_columns = $upsells.closest('.up-sells').data('columns'); // Product thumnails and featured image slider $upsells.not('.slick-initialized').slick({ rtl: (martfuryData.direction === 'true'), slidesToShow: parseInt(upsells_columns), slidesToScroll: parseInt(upsells_columns), arrows: true, dots: true, infinite: false, prevArrow: '<span class="icon-chevron-left slick-prev-arrow"></span>', nextArrow: '<span class="icon-chevron-right slick-next-arrow"></span>', responsive: [ { breakpoint: 1366, settings: { slidesToShow: parseInt(upsells_columns) > 5 ? 5 : parseInt(upsells_columns), slidesToScroll: parseInt(upsells_columns) > 5 ? 5 : parseInt(upsells_columns) } }, { breakpoint: 1200, settings: { slidesToShow: parseInt(upsells_columns) > 4 ? 4 : parseInt(upsells_columns), slidesToScroll: parseInt(upsells_columns) > 4 ? 4 : parseInt(upsells_columns) } }, { breakpoint: 992, settings: { slidesToShow: 3, slidesToScroll: 3 } }, { breakpoint: 767, settings: { slidesToShow: 2, slidesToScroll: 2 } } ] }); $upsells.on('afterChange', function () { martfury.lazyLoad(); }); var related_columns = $related.closest('.related').data('columns'); $related.not('.slick-initialized').slick({ rtl: (martfuryData.direction === 'true'), slidesToShow: parseInt(related_columns), slidesToScroll: parseInt(related_columns), arrows: true, dots: true, infinite: false, prevArrow: '<span class="icon-chevron-left slick-prev-arrow"></span>', nextArrow: '<span class="icon-chevron-right slick-next-arrow"></span>', responsive: [ { breakpoint: 1366, settings: { slidesToShow: parseInt(related_columns) > 5 ? 5 : parseInt(related_columns), slidesToScroll: parseInt(related_columns) > 5 ? 5 : parseInt(related_columns) } }, { breakpoint: 1200, settings: { slidesToShow: parseInt(related_columns) > 4 ? 4 : parseInt(related_columns), slidesToScroll: parseInt(related_columns) > 4 ? 4 : parseInt(related_columns) } }, { breakpoint: 992, settings: { slidesToShow: 3, slidesToScroll: 3 } }, { breakpoint: 767, settings: { slidesToShow: 2, slidesToScroll: 2 } } ] }); $related.on('afterChange', function () { martfury.lazyLoad(); }); }; //Instagram slider martfury.instagramCarousel = function () { var $instagram = martfury.$body.find('.mf-product-instagram ul.products'), columns = $instagram.data('columns'), autoplay = $instagram.data('auto'), infinite = false, speed = 1000; if ($instagram.length < 1) { return; } if (autoplay > 0) { infinite = true; speed = autoplay; autoplay = true; } else { autoplay = false; } $instagram.not('.slick-initialized').slick({ rtl: (martfuryData.direction === 'true'), slidesToShow: columns, slidesToScroll: columns, autoplaySpeed: speed, autoplay: autoplay, infinite: infinite, dots: true, prevArrow: '<span class="icon-chevron-left slick-prev-arrow"></span>', nextArrow: '<span class="icon-chevron-right slick-next-arrow"></span>', responsive: [ { breakpoint: 1200, settings: { slidesToShow: parseInt(columns) > 4 ? 4 : parseInt(columns), slidesToScroll: parseInt(columns) > 4 ? 4 : parseInt(columns) } }, { breakpoint: 992, settings: { slidesToShow: 3, slidesToScroll: 3 } }, { breakpoint: 767, settings: { slidesToShow: 2, slidesToScroll: 2 } } ] }); $instagram.on('afterChange', function () { martfury.lazyLoad(); }); }; /** * Toggle product quick view */ martfury.productQuickView = function () { var $modal = $('#mf-quick-view-modal'), $product = $modal.find('.product-modal-content'); martfury.$body.on('click', '.mf-product-quick-view', function (e) { e.preventDefault(); var $a = $(this), id = $a.data('id'); $product.hide().html(''); $modal.addClass('loading').removeClass('loaded'); martfury.openModal($modal); var data = { nonce: martfuryData.nonce, product_id: id }, ajax_url = martfuryData.wc_ajax_url.toString().replace('%%endpoint%%', 'martfury_product_quick_view'); $.post( ajax_url, data, function (response) { $product.show().append(response.data); $modal.removeClass('loading').addClass('loaded'); var $gallery = $product.find('.woocommerce-product-gallery'), $variation = $('.variations_form'), $buttons = $product.find('form.cart .actions-button'), $buy_now = $buttons.find('.buy_now_button'); $gallery.removeAttr('style'); $gallery.find('img.lazy').lazyload().trigger('appear'); $gallery.imagesLoaded(function () { $gallery.find('.woocommerce-product-gallery__wrapper').not('.slick-initialized').slick({ slidesToShow: 1, slidesToScroll: 1, infinite: false, prevArrow: '<span class="icon-chevron-left slick-prev-arrow"></span>', nextArrow: '<span class="icon-chevron-right slick-next-arrow"></span>' }); }); $product.find('div.product').addClass('qv-modal'); if ($buy_now.length > 0) { $buttons.prepend($buy_now); } $gallery.find('.woocommerce-product-gallery__image').on('click', function (e) { e.preventDefault(); }); if (typeof wc_add_to_cart_variation_params !== 'undefined') { $variation.each(function () { $(this).wc_variation_form(); }); } if (typeof $.fn.tawcvs_variation_swatches_form !== 'undefined') { $variation.tawcvs_variation_swatches_form(); } martfury.productVatiation(); if (typeof tawcvs !== 'undefined') { if (tawcvs.tooltip === 'yes') { $variation.find('.swatch').tooltip({ classes: {'ui-tooltip': 'martfury-tooltip'}, tooltipClass: 'martfury-tooltip qv-tool-tip', position: {my: 'center bottom', at: 'center top-13'}, create: function () { $('.ui-helper-hidden-accessible').remove(); } }); } } $product.find('.compare').tooltip({ content: function () { return $(this).html(); }, classes: {'ui-tooltip': 'martfury-tooltip'}, tooltipClass: 'martfury-tooltip qv-tooltip', position: {my: 'center bottom', at: 'center top-13'}, create: function () { $('.ui-helper-hidden-accessible').remove(); } }); $product.find('[data-rel=tooltip]').tooltip({ classes: {'ui-tooltip': 'martfury-tooltip'}, tooltipClass: 'martfury-tooltip qv-tooltip', position: {my: 'center bottom', at: 'center top-13'}, create: function () { $('.ui-helper-hidden-accessible').remove(); } }); martfury.buyNow(); martfury.addToCartAjax(); $(document.body).trigger('yith_wcwl_init'); $( document.body ).trigger( 'init_variation_swatches'); } ); }); $modal.on('click', '.close-modal, .mf-modal-overlay', function (e) { e.preventDefault(); martfury.closeModal($modal); }) }; martfury.productVatiation = function () { martfury.$body.on('tawcvs_initialized', function () { $('.variations_form').unbind('tawcvs_no_matching_variations'); $('.variations_form').on('tawcvs_no_matching_variations', function (event, $el) { event.preventDefault(); $('.variations_form').find('.woocommerce-variation.single_variation').show(); if (typeof wc_add_to_cart_variation_params !== 'undefined') { $('.variations_form').find('.single_variation').slideDown(200).html('<p>' + wc_add_to_cart_variation_params.i18n_no_matching_variations_text + '</p>'); } }); }); $('.variations_form').on('found_variation', function (event, variation) { var $sku = $('.mf-product-detail').find('.meta-sku').find('.meta-value'); if (typeof $sku.wc_set_content !== 'function') { return; } if (typeof $sku.wc_reset_content !== 'function') { return; } if (variation.sku) { $sku.wc_set_content(variation.sku); } else { $sku.wc_reset_content(); } }); $('.single-product div.product .entry-summary .variations_form:not(.product-select__variation)').on( 'found_variation', function (event, variation) { var $productPrice = $( 'div.product .entry-summary .martfury-product-price' ); if( $productPrice.length > 0 ) { if( $productPrice.find( '.variation-price' ).length > 0 ) { $productPrice.find( '.variation-price' ).remove(); } if( variation.price_html ) { $productPrice.find( '.price' ).css( 'display', 'none' ); $productPrice.append( '<div class="variation-price">' + variation.price_html + '</div>' ); } else { $productPrice.find( '.price' ).css( 'display', '' ); } } else { $productPrice = $(this).closest('.entry-summary').find('.martfury-product-price'); if( $productPrice.length > 0 ) { if( $productPrice.find( '.variation-price' ).length > 0 ) { $productPrice.find( '.variation-price' ).remove(); } if( variation.price_html ) { $productPrice.find( '.price' ).css( 'display', 'none' ); $productPrice.append( '<div class="variation-price">' + variation.price_html + '</div>' ); } else { $productPrice.find( '.price' ).css( 'display', '' ); } } } }); $('.single-product div.product .entry-summary .variations_form:not(.product-select__variation)').on( 'reset_data', function () { var $productPrice = $( 'div.product .entry-summary .martfury-product-price' ); if( $productPrice.length > 0 && $productPrice.find( '.variation-price' ).length > 0 ) { $productPrice.find( '.variation-price' ).remove(); $productPrice.find( '.price' ).css( 'display', '' ); } else { $productPrice = $(this).closest('.entry-summary').find('.martfury-product-price'); if( $productPrice.length > 0 && $productPrice.find( '.variation-price' ).length > 0 ) { $productPrice.find( '.variation-price' ).remove(); $productPrice.find( '.price' ).css( 'display', '' ); } } }); $('.variations_form td.value').find('select').each(function () { if( $(this).parent().hasClass('wcboost-variation-swatches') ) { return; } $(this).on('change', function () { var value = $(this).find('option:selected').text(); $(this).closest('tr').find('td.label .mf-attr-value').html(value); }).trigger('change'); }); }; martfury.productVariationVideo = function () { var $variations_form = $('.variations_form'), $variations_gallery = $('.woocommerce-product-gallery'); $variations_form.on('found_variation.wc-variation-form', function (event, variation) { if (!$variations_gallery.hasClass('video-first') || !$variations_gallery.hasClass('has-video')) { return; } var $videoImage = $variations_gallery.find('.mf-video-content').find('.wp-post-image'); if ($videoImage.length < 1 || $videoImage.attr('src') === '#') { return; } if (variation && variation.image && variation.image.src && variation.image.src.length > 1) { $variations_gallery.addClass('active-first-image'); } else { $variations_gallery.removeClass('active-first-image'); } }); $variations_form.on('reset_image', function (event) { $variations_gallery.removeClass('active-first-image'); }); }; // Add to cart ajax martfury.addToCartAjax = function () { if (martfuryData.add_to_cart_ajax == '0') { return; } var found = false; martfury.$body.find('form.cart').on('click', '.single_add_to_cart_button', function (e) { var $el = $(this), $cartForm = $el.closest('form.cart'), $productTitle = $el.closest('.entry-summary').find('.product_title'); if ($el.hasClass('has-buy-now')) { return; } if ($cartForm.length > 0) { e.preventDefault(); } else { return; } if ($el.hasClass('disabled')) { return; } $el.addClass('loading'); if (found) { return; } found = true; $cartForm.find('input[name="buy_now"]').remove(); var formdata = $cartForm.serializeArray(), currentURL = window.location.href; if ($el.val() != '') { formdata.push({name: $el.attr('name'), value: $el.val()}); } $.ajax({ url: window.location.href, method: 'post', data: formdata, error: function () { window.location = currentURL; }, success: function (response) { if (!response) { window.location = currentURL; } if (typeof wc_add_to_cart_params !== 'undefined') { if (wc_add_to_cart_params.cart_redirect_after_add === 'yes') { window.location = wc_add_to_cart_params.cart_url; return; } } $(document.body).trigger('updated_wc_div'); $(document.body).on('wc_fragments_refreshed', function () { $el.removeClass('loading'); }); var $message = '', className = 'success', $content = false; if ($(response).find('.woocommerce-message').length > 0) { $message = $(response).find('.woocommerce-message').html(); } else if ($(response).find('.woocommerce-error').length > 0) { $message = $(response).find('.woocommerce-error').html(); className = 'error'; } else if ($(response).find('.woocommerce-info').length > 0) { $message = $(response).find('.woocommerce-info').html(); } if ($(response).find('.woocommerce-notices-wrapper .wc-block-components-notice-banner.is-success').length) { className = 'success'; $message = $(response).find('.woocommerce-notices-wrapper .wc-block-components-notice-banner.is-success .wc-block-components-notice-banner__content').html(); } else if ($(response).find('.woocommerce-notices-wrapper .wc-block-components-notice-banner.is-error').length) { className = 'error'; $message = $(response).find('.woocommerce-notices-wrapper .wc-block-components-notice-banner.is-error .wc-block-components-notice-banner__content').html(); } else if ($(response).find('.woocommerce-notices-wrapper .wc-block-components-notice-banner').length ) { $message = $(response).find('.woocommerce-notices-wrapper .wc-block-components-notice-banner .wc-block-components-notice-banner__content').html(); } martfury.addedToCartNotice($message, true, className, false); $el.removeClass('loading'); found = false; } }); }); }; martfury.addedToCartNotice = function ($message, single, className, multiple) { if (typeof martfuryData.added_to_cart_notice === 'undefined' || !$.fn.notify) { return; } if (!single) { if (multiple) { $message += ' ' + martfuryData.added_to_cart_notice.added_to_cart_texts; } else { $message += ' ' + martfuryData.added_to_cart_notice.added_to_cart_text; } } $message += '<a href="' + martfuryData.added_to_cart_notice.cart_view_link + '" class="btn-button">' + martfuryData.added_to_cart_notice.cart_view_text + '</a>'; if (single) { $message = '<div class="message-box">' + $message + '</div>'; } $.notify.addStyle('martfury', { html: '<div><i class="icon-checkmark-circle message-icon"></i>' + $message + '<span class="close icon-cross2"></span> </div>' }); $.notify(' ', { autoHideDelay: martfuryData.added_to_cart_notice.cart_notice_auto_hide, className: className, style: 'martfury', showAnimation: 'fadeIn', hideAnimation: 'fadeOut' }); }; // Filter Ajax martfury.filterAjax = function () { if (!martfury.$body.hasClass('catalog-ajax-filter')) { return; } $('#page').addClass('fade-in'); $(document.body).on('price_slider_change', function (event, ui) { var form = $('.price_slider').closest('form').get(0), $form = $(form), url = $form.attr('action') + '?' + $form.serialize(); $(document.body).trigger('martfury_catelog_filter_ajax', url, $(this)); }); martfury.$body.on('click', '.mf_widget_product_categories a, .mf-widget-layered-nav a, .widget_rating_filter a, .widget_layered_nav_filters a, ul.woocommerce-ordering a:not(.mf-cancel-order)', function (e) { e.preventDefault(); var url = $(this).attr('href'); $(document.body).trigger('martfury_catelog_filter_ajax', url, $(this)); }); $(document.body).on('martfury_catelog_filter_ajax', function (e, url, element) { var $content = $('#content'), $pageHeader = $('.page-header'), $headerTitle = $('head').find('title'); NProgress.start(); $('#page').removeClass('fade-in'); if ('?' == url.slice(-1)) { url = url.slice(0, -1); } url = url.replace(/%2C/g, ','); history.pushState(null, null, url); $(document.body).trigger('martfury_ajax_filter_before_send_request', [url, element]); if (martfury.ajaxXHR) { martfury.ajaxXHR.abort(); } martfury.ajaxXHR = $.get(url, function (res) { $content.replaceWith($(res).find('#content')); $pageHeader.html($(res).find('.page-header').html()); $headerTitle.html($(res).filter('title').text()); if (typeof martfuryData.catalog_filter_products_status !== 'undefined') { martfury.$body.removeClass('mf-filter-active'); } if ($(res).find('#primary-sidebar').length < 1) { martfury.$body.removeClass('mb-filter-active sidebar-content').addClass('full-content'); } $(document.body).trigger('martfury_ajax_filter_request_success', [res, url]); $(document.body).trigger('yith_wcwl_init'); }, 'html'); }); $(document.body).on('martfury_ajax_filter_request_success', function () { martfury.lazyLoad(); martfury.toolTipIcon(); martfury.searchLayeredNav(); martfury.catalogBanners(); martfury.productsTopCarousel(); martfury.collapseTheFilter(); martfury.productCategoriesWidget(); martfury.productAttribute(); martfury.variationImagesCarousel(); martfury.productTopCategories(); martfury.priceSlider(); martfury.catalogSorting(); martfury.productCatWidget(); NProgress.done(); $('#page').addClass('fade-in'); }); }; martfury.productMultiVendors = function () { if (!martfury.$body.hasClass('mobile-version')) { return; } var $vendorTab = $('#tab-singleproductmultivendor'); if ($vendorTab.length < 1) { return; } var stickyHeader = 30; if (martfury.$body.hasClass('sticky-header')) { stickyHeader = 90; } var topSection = $vendorTab.offset().top - stickyHeader; $('div.product').on('click', '.goto_more_offer_tab', function (e) { e.preventDefault(); $('html, body').stop().animate({ scrollTop: topSection }, 400 ); $vendorTab.find('.tab-title').trigger('click'); }); }; martfury.stickyProductInfo = function () { if (!martfury.$body.hasClass('sticky-header-info')) { return; } var $sticky_header = $('#sticky-product-info-wapper'), $wc_tabs = $('div.product').find('.woocommerce-tabs'), sticky_height = $sticky_header.outerHeight(true), $product_summary = $('div.product').find('.mf-product-summary'), $entry_cat = $('div.product').find('.entry-summary').find('.cart'), topSection = 0; $sticky_header.find('.sc-tabs').on('click', 'a', function (e) { e.preventDefault(); var target = $(this).data('tab'); $(this).closest('.sc-tabs').find('a').removeClass('active'); $(this).addClass('active'); if (martfury.$body.hasClass('single-product-layout-3') || martfury.$body.hasClass('mobile-version')) { var $tab = $('#tab-' + target); if ($tab.length > 0) { topSection = $tab.offset().top - sticky_height - 60; $('html, body').stop().animate({ scrollTop: topSection }, 400 ); } } else { if ($wc_tabs.length > 0) { $wc_tabs.find('.' + target + '_tab a').trigger('click'); topSection = $wc_tabs.offset().top - sticky_height - 60; $('html, body').stop().animate({ scrollTop: topSection }, 400 ); } } }); $wc_tabs.find('.wc-tabs').on('click', 'a', function (e) { e.preventDefault(); var id = $(this).attr('href'); id = id ? id.replace('#', '') : id; if (id) { $sticky_header.find('.sc-tabs').find('a').removeClass('active'); $sticky_header.find('.sc-tabs .' + id).addClass('active'); } }); $sticky_header.find('.sc-product-cart').on('click', '.button-scroll', function (e) { e.preventDefault(); if ($entry_cat.length > 0) { var topSection = $entry_cat.offset().top - sticky_height - 50; $('html, body').stop().animate({ scrollTop: topSection }, 400 ); } }); var offSet = 150; if (martfury.$body.hasClass('single-product-layout-3') || martfury.$body.hasClass('mobile-version')) { martfury.$window.on('scroll', function () { $sticky_header.find('.sc-tabs li a').removeClass('active'); $sticky_header.find('.sc-tabs li').each(function () { var $el = $(this).find('a'); var currentTab = $el.attr('href'); if ($(currentTab).is(':in-viewport(' + offSet + ')')) { $el.addClass('active'); } }); }); } if ($product_summary.length < 1) { return; } var top_sumary = 0; martfury.$window.on('scroll', function () { if (martfury.$body.hasClass('mobile-version')) { var hTopbar = $('#topbar').length > 0 ? $('#topbar').outerHeight(true) : 0, hHeader = martfury.$header.outerHeight(true); top_sumary = hHeader + hTopbar; } else { top_sumary = $product_summary.offset().top - 300; } if (martfury.$window.scrollTop() > top_sumary) { $sticky_header.addClass('viewport'); } else { $sticky_header.removeClass('viewport'); } }); }; martfury.catalogOpenCartMini = function () { $(document.body).on('added_to_cart', function (event, fragments, cart_hash, $thisbutton) { var product_title = $thisbutton.attr('data-title'); martfury.addedToCartNotice(product_title, false, 'success', false); }); }; // Get price js slider martfury.priceSlider = function () { // woocommerce_price_slider_params is required to continue, ensure the object exists if (typeof woocommerce_price_slider_params === 'undefined') { return false; } if ($('.catalog-sidebar').find('.widget_price_filter').length <= 0) { return false; } // Get markup ready for slider $('input#min_price, input#max_price').hide(); $('.price_slider, .price_label').show(); // Price slider uses jquery ui var min_price = $('.price_slider_amount #min_price').data('min'), max_price = $('.price_slider_amount #max_price').data('max'), current_min_price = parseInt(min_price, 10), current_max_price = parseInt(max_price, 10); if ($('.price_slider_amount #min_price').val() != '') { current_min_price = parseInt($('.price_slider_amount #min_price').val(), 10); } if ($('.price_slider_amount #max_price').val() != '') { current_max_price = parseInt($('.price_slider_amount #max_price').val(), 10); } $(document.body).on('price_slider_create price_slider_slide', function (event, min, max) { if (woocommerce_price_slider_params.currency_pos === 'left') { $('.price_slider_amount span.from').html(woocommerce_price_slider_params.currency_symbol + min); $('.price_slider_amount span.to').html(woocommerce_price_slider_params.currency_symbol + max); } else if (woocommerce_price_slider_params.currency_pos === 'left_space') { $('.price_slider_amount span.from').html(woocommerce_price_slider_params.currency_symbol + ' ' + min); $('.price_slider_amount span.to').html(woocommerce_price_slider_params.currency_symbol + ' ' + max); } else if (woocommerce_price_slider_params.currency_pos === 'right') { $('.price_slider_amount span.from').html(min + woocommerce_price_slider_params.currency_symbol); $('.price_slider_amount span.to').html(max + woocommerce_price_slider_params.currency_symbol); } else if (woocommerce_price_slider_params.currency_pos === 'right_space') { $('.price_slider_amount span.from').html(min + ' ' + woocommerce_price_slider_params.currency_symbol); $('.price_slider_amount span.to').html(max + ' ' + woocommerce_price_slider_params.currency_symbol); } $(document.body).trigger('price_slider_updated', [min, max]); }); if (typeof $.fn.slider !== 'undefined') { $('.price_slider').slider({ range: true, animate: true, min: min_price, max: max_price, values: [current_min_price, current_max_price], create: function () { $('.price_slider_amount #min_price').val(current_min_price); $('.price_slider_amount #max_price').val(current_max_price); $(document.body).trigger('price_slider_create', [current_min_price, current_max_price]); }, slide: function (event, ui) { $('input#min_price').val(ui.values[0]); $('input#max_price').val(ui.values[1]); $(document.body).trigger('price_slider_slide', [ui.values[0], ui.values[1]]); }, change: function (event, ui) { $(document.body).trigger('price_slider_change', [ui.values[0], ui.values[1]]); } }); } }; martfury.loginTabs = function () { var $tabs = $('.martfury-login-tabs'), $el = $tabs.find('.tabs-nav a'), $panels = $tabs.find('.tabs-panel'); $el.on('click', function (e) { e.preventDefault(); var $tab = $(this), index = $tab.parent().index(); if ($tab.hasClass('active')) { return; } $tabs.find('.tabs-nav a').removeClass('active'); $tab.addClass('active'); $panels.removeClass('active'); $panels.filter(':eq(' + index + ')').addClass('active'); }); }; // Loading Ajax martfury.productsLoadInfinite = function () { if (!martfury.$body.hasClass('navigation-type-infinite')) { return; } martfury.$window.on('scroll', function () { if (martfury.$body.find('#martfury-products-loading').is(':in-viewport')) { martfury.$body.find('#martfury-products-loading').closest('.next').trigger('click'); } }).trigger('scroll'); martfury.$body.on('click', '.woocommerce-pagination .next', function (e) { e.preventDefault(); var $el = $(this); if ($el.data('requestRunning')) { return; } $el.data('requestRunning', true); var $pagination = $el.closest('.woocommerce-pagination'), $products = $pagination.prev('.products'), href = $el.closest('.next').attr('href'); $.get( href, function (response) { var content = $(response).find('#mf-shop-content ul.products').children('li.product'), $pagination_html = $(response).find('.woocommerce-pagination').html(); if (martfury.$body.hasClass('wcfmmp-store-page')) { content = $(response).find('#products-wrapper ul.products').children('li.product'); } $pagination.html($pagination_html); $products.append(content); $pagination.find('.next').data('requestRunning', false); martfury.toolTipIcon(); martfury.lazyLoad(); martfury.variationImagesCarousel(); $(document.body).trigger('martfury_shop_ajax_loading_success'); $(document.body).trigger('yith_wcwl_init'); $(document.body).trigger('jetpack-lazy-images-load'); } ); }); }; martfury.productCatWidget = function () { var $widget = $('.mf_widget_product_categories'), catNumbers = parseInt($widget.find('input.widget-cat-numbers').val(), 10); if (!$widget.find('ul.product-categories').hasClass('has-view-more')) { return; } var count = $widget.find('ul.product-categories > li.cat-item').size(); if (count > catNumbers) { $widget.find('.show-more').show(); } $widget.find('ul.product-categories > li.cat-item:lt(' + catNumbers + ')').show(); $widget.on('click', '.show-more', function () { $widget.find('ul.product-categories > li.cat-item').show(); $(this).hide(); $widget.find('.show-less').show(); }); $widget.on('click', '.show-less', function () { $widget.find('ul.product-categories > li.cat-item').not(':lt(' + catNumbers + ')').hide(); $(this).hide(); $widget.find('.show-more').show(); }); }; martfury.buyNow = function () { if (!martfury.$body.find('.mf-single-product').hasClass('mf-has-buy-now')) { return; } martfury.$body.find('form.cart').on('click', '.buy_now_button', function (e) { e.preventDefault(); var $form = $(this).closest('form.cart'), is_disabled = $(this).is(':disabled'); if (is_disabled) { jQuery('html, body').animate({ scrollTop: $(this).offset().top - 200 }, 900 ); } else { $form.append('<input type="hidden" value="true" name="buy_now" />'); $form.find('.single_add_to_cart_button').addClass('has-buy-now'); $form.find('.single_add_to_cart_button').trigger('click'); } }); var $variations_form = $('.variations_form'); $variations_form.on('hide_variation', function (event) { event.preventDefault(); $variations_form.find('.buy_now_button').addClass('disabled wc-variation-selection-needed'); }); $variations_form.on('show_variation', function (event, variation, purchasable) { event.preventDefault(); if (purchasable) { $variations_form.find('.buy_now_button').removeClass('disabled wc-variation-selection-needed'); } else { $variations_form.find('.buy_now_button').addClass('disabled wc-variation-selection-needed'); } }); }; // Footer Dropdown martfury.footerDropdown = function () { if (!martfury.$body.hasClass('mobile-version')) { return; } var $dropdown = $('#footer-widgets .widget_nav_menu, #footer-links .widget_nav_menu'), $title = $dropdown.find('.widget-title'); $title.next('div').addClass('clicked'); $dropdown.on('click', '.widget-title', function (e) { e.preventDefault(); $(this).next('.clicked').stop().slideToggle(); $(this).toggleClass('active'); return false; }); }; martfury.catalogSorting = function () { if (!martfury.$body.hasClass('mobile-version')) { return; } var $sortingMobile = $('#mf-catalog-sorting-mobile'); $('#mf-catalog-toolbar').on('click', '.woocommerce-ordering', function (e) { e.preventDefault(); $sortingMobile.addClass('mf-active'); }); $sortingMobile.on('click', 'a', function (e) { $sortingMobile.removeClass('mf-active'); $sortingMobile.find('a').removeClass('active'); $(this).addClass('active'); }); }; martfury.filterOnMobile = function () { martfury.$body.on('click', '#mf-filter-mobile', function (e) { e.preventDefault(); martfury.$body.toggleClass('mf-filter-active'); }); martfury.$body.find('#mf-catalog-close-sidebar').on('click', '.close-sidebar', function (e) { e.preventDefault(); martfury.$body.removeClass('mf-filter-active'); }); }; martfury.historyBack = function () { if (!martfury.$body.hasClass('mobile-version')) { return; } var $selector = martfury.$header.find('.mf-history-back'); $selector.on('click', function (e) { if (document.referrer != '') { e.preventDefault(); window.history.go(-1); $(window).on('popstate', function (e) { window.location.reload(true); }); } }); }; martfury.wcfm = function () { if ($('#mf_pbt_product_ids').length <= 0) { return false; } if (typeof $wcfm_product_select_args === 'undefined') { return false; } $('#mf_pbt_product_ids').select2($wcfm_product_select_args); }; /** * Document ready */ $(function () { martfury.init(); }); }) (jQuery);
💾 Save Changes
❌ Cancel