/* ** Category Ajax Js ** Version: 1.0.0 */ (function ($) { $(document).ready(function(){ /* Category slider ajax */ $('[data-catload=ajax]').on('click', function() { sw_tab_click_ajax( $(this) ); }); $('[data-catload=ajax_listing]').on('click', function() { sw_tab_ajax_listing( $(this) ); }); $('[data-catload=so_ajax]').on('click', function() { sw_tab_click_ajax( $(this) ); }); var SMobileSlider = function( $target ) { this.$target = $target; var _target = $target.find( '.responsive' ); $target.append( '' ); $target.find( '.res-button' ).on( 'click', function (){ var scroll = $(this).data( 'scroll' ); var wli = $target.find( '.responsive > div' ).outerWidth() + 4; wli = ( 'left' === scroll ) ? - wli : wli; var pos = _target.scrollLeft() + wli; _target.animate({scrollLeft: pos}, 200); }); } $.fn.swp_mobile_scroll = function() { new SMobileSlider( this ); return this; }; function sw_tab_click_ajax( element ) { var target = $( element.attr( 'href' ) ); var id = element.attr( 'href' ); var length = element.data( 'length' ); var ltype = element.data( 'type' ); var layout = element.data( 'layout' ); var dots = element.data( 'dots' ); var orderby = element.data( 'orderby' ); var order = element.data( 'order' ); var item_row = element.data( 'row' ); var sorder = element.data( 'sorder' ); var catid = element.data( 'category' ); var number = element.data( 'number' ); var columns = element.data( 'lg' ); var columns1 = element.data( 'md' ); var columns2 = element.data( 'sm' ); var columns3 = element.data( 'xs' ); var columns4 = element.data( 'mobile' ); var interval = element.data( 'interval' ); var scroll = element.data( 'scroll' ); var speed = element.data( 'speed' ); var autoplay = element.data( 'autoplay' ); var tg_append = element.parents( '.sw-ajax' ).find( ' .tab-content' ); var action = ''; if( ltype == 'cat_ajax' ) { action = 'sw_category_callback'; } else if( ltype == 'so_ajax' ) { action = 'sw_tab_category'; } else if( ltype == 'tab_ajax' ) { action = 'sw_ajax_tab'; }else if( ltype == 'tab_ajax_listing' ) { action = 'sw_ajax_tab_listing'; }else if( ltype == 'tab_ajax_countdown' ) { action = 'sw_ajax_tab_countdown'; } var ajaxurl = element.data( 'ajaxurl' ).replace( '%%endpoint%%', action ); if( !element.parent().hasClass ('loaded') ){ tg_append.addClass( 'loading' ); var data = { action: action, catid: catid, number: number, target: id, title_length: length, layout: layout, item_row: item_row, layout: layout, sorder: sorder, orderby: orderby, order: order, columns: columns, columns1: columns1, columns2: columns2, columns3: columns3, columns4: columns4, dots: dots, interval: interval, speed: speed, scroll: scroll, autoplay: autoplay, }; jQuery.post(ajaxurl, data, function(response) { element.parent().addClass( 'loaded' ); tg_append.find( '.tab-pane' ).removeClass( 'active' ); tg_append.append( response ); sw_slider_ajax( id ); $( ".add_to_cart_button" ).attr( "title", "Add to cart" ); $( ".add_to_wishlist" ).attr( "title", "Add to wishlist" ); $( ".compare" ).attr( "title", "Add to compare" ); $( ".group" ).attr( "title", "Quickview" ); tg_append.removeClass( 'loading' ); $('.woo-tab-container-slider .product-countdown').each(function(event){ var $this = $(this); var $current_time = new Date().getTime(); var $cd_date = $(this).data( 'date' ); var $start_time = $(this).data('starttime') * 1000; var $countdown_time = $cd_date * 1000; var $austDay = new Date( $cd_date * 1000 ); if( $start_time > $current_time ){ $this.remove(); return ; } if( $countdown_time > 0 && $current_time > $countdown_time ){ $this.remove(); return ; } if( $countdown_time <= 0 ){ $this.remove(); return ; } $this.countdown($austDay, function(event) { $(this).html( event.strftime('%D%H%M%S') ); }).on('finish.countdown', function(event){ $(this).hide('slow', function(){ $(this).remove(); }); location.reload(); }); }); }); } } function sw_slider_ajax( target ) { var element = $(target).find( '.responsive-slider' ); var $col_lg = element.data('lg'); var $col_md = element.data('md'); var $col_sm = element.data('sm'); var $col_xs = element.data('xs'); var $col_mobile = element.data('mobile'); var $speed = element.data('speed'); var $interval = element.data('interval'); var $scroll = element.data('scroll'); var $autoplay = element.data('autoplay'); var $rtl = $('body').hasClass( 'rtl' ); $target = $(target).find( '.responsive' ); $target.slick({ appendArrows: $(target), prevArrow: '', nextArrow: '', dots: false, infinite: true, speed: $speed, slidesToShow: $col_lg, slidesToScroll: $scroll, autoplay: $autoplay, autoplaySpeed: $interval, rtl: $rtl, responsive: [ { breakpoint: 1199, settings: { slidesToShow: $col_md, slidesToScroll: $col_md } }, { breakpoint: 991, settings: { slidesToShow: $col_sm, slidesToScroll: $col_sm } }, { breakpoint: 767, settings: { slidesToShow: $col_xs, slidesToScroll: $col_xs } }, { breakpoint: 480, settings: { slidesToShow: $col_mobile, slidesToScroll: $col_mobile } } ] }); setTimeout(function(){ element.removeClass("loading"); }, 500); } /* ** Categories Tab Ajax listing */ function sw_tab_ajax_listing( element ) { var target = $( element.attr( 'href' ) ); var id = element.attr( 'href' ); var ltype = element.data( 'type' ); var layout = element.data( 'layout' ); var catid = element.data( 'category' ); var number = element.data( 'number' ); var action = 'sw_ajax_tab_listing'; var ajaxurl = element.data( 'ajaxurl' ).replace( '%%endpoint%%', action ); if( target.html() == '' ){ target.parent().addClass( 'loading' ); var data = { action: action, catid: catid, number: number, target: id, layout: layout }; jQuery.post(ajaxurl, data, function(response) { target.html( response ); target.parent().removeClass( 'loading' ); }); } } /* ** Categories Ajax listing */ $('.sw-ajax-categories').each( function(){ var tparent = $(this); var target = $(this).find( 'a.btn-loadmore' ); var number = target.data( 'number' ); var maxpage = target.data( 'maxpage' ); var length = target.data( 'length' ); var action = 'sw_category_ajax_listing'; var ajaxurl = target.data( 'ajaxurl' ).replace( '%%endpoint%%', action ); var page = 1; if( page >= maxpage ){ target.addClass( 'btn-loaded' ); } target.on( 'click',function(){ if( page >= maxpage ){ return false; } target.addClass( 'btn-loading' ); jQuery.ajax({ type: "POST", url: ajaxurl, data: ({ action : action, number : number, page : page, title_length : length }), success: function(data) { target.removeClass('btn-loading'); var $newItems = $(data); if( $newItems.length > 0 ){ page = page + 1; tparent.find( '.resp-listing-container' ).append( $newItems ); if( page >= maxpage ){ target.addClass( 'btn-loaded' ); } }else{ target.addClass( 'btn-loaded' ); } } }); }); }); }); $(window).on('load',function(){ $( '.sw-woo-tab-listing' ).each(function(){ var $this = $(this); var $id = this.id; var $item_height = $(this).find( '.item-listing' ).outerHeight(); var $btn_loadmore = $(this).find('.item-more > a'); var $layout = $btn_loadmore.data('layout'); var $categories = $btn_loadmore.data('category'); var $max_page = $btn_loadmore.data('max_page'); var $attributes = $btn_loadmore.data('attributes'); var $number = $btn_loadmore.data('number'); var $orderby = $btn_loadmore.data( 'orderby' ); var $order = $btn_loadmore.data( 'order' ); var $ajax_url = $btn_loadmore.data('ajaxurl').replace( '%%endpoint%%', 'sw_resp_listing_ajax' ); var $container_id = $(this).find('.tab-listing-container'); var $page = 1; //$btn_loadmore.css( 'height', $item_height ); if( $page >= $max_page ){ $btn_loadmore.parent().addClass( 'btn-loaded' ); $btn_loadmore.removeAttr('onclick').off('click'); } $btn_loadmore.on( 'click',function(){ if( $page >= $max_page ){ return false; } $(this).parent().addClass('btn-loading'); jQuery.ajax({ type: "POST", url: $ajax_url, data: ({ action : "sw_resp_listing_ajax", catid : $categories, layout : $layout, numb : $number, orderby : $orderby, order : $order, page : $page, attributes: $attributes }), success: function(data) { var $newItems = $(data); if( $newItems.length > 0 ){ $newItems.imagesLoaded( function(){ setTimeout(function(){ $newItems.insertAfter( '#'+ $id + ' .item-listing:nth-last-child(2)' ); }, 500); }); $btn_loadmore.parent().removeClass('btn-loading'); $page = $page + 1; console.log( $newItems.length ); if( $newItems.length < $number ){ $btn_loadmore.parent().addClass( 'btn-loaded' ); $btn_loadmore.removeAttr('onclick').off('click'); } if( $page >= $max_page ){ $btn_loadmore.parent().addClass( 'btn-loaded' ); $btn_loadmore.removeAttr('onclick').off('click'); } }else{ $btn_loadmore.parent().addClass( 'btn-loaded' ); $btn_loadmore.removeAttr('onclick').off('click'); } } }); }); }); }); })(jQuery);