/home/awneajlw/work.codestechvista.com/wp-content/themes/ignavo/includes/woocommerce/tab-ajax.php
<?php
/*************************************************
## Tab View
*************************************************/ 

add_action( 'wp_ajax_nopriv_tab_view', 'ignavo_tab_view_callback' );
add_action( 'wp_ajax_tab_view', 'ignavo_tab_view_callback' );
function ignavo_tab_view_callback() {
	
	global $product;
	global $woocommerce;
	$catid = intval( $_POST['catid'] );
	$items = intval( $_POST['items'] );
	$mobile = intval( $_POST['mobile'] );
	$tablet = intval( $_POST['tablet'] );
	$speed = intval( $_POST['speed'] );
	$post_count = intval( $_POST['post_count'] );
	$dots = $_POST['dots'];
	$arrows = $_POST['arrows'];
	$autoplay = $_POST['autoplay'];
	$autospeed = intval( $_POST['autospeed'] );
	$producttype = $_POST['producttype'];
	$productclass = $_POST['productclass'];
	$best_selling = $_POST['best_selling'];
	$featured = $_POST['featured'];
	$on_sale = $_POST['on_sale'];
	$stockprogressbar = $_POST['stockprogressbar'];
	$stockstatus = $_POST['stockstatus'];
	$shippingclass = $_POST['shippingclass'];
	$countdown = $_POST['countdown'];
	$product_sku = $_POST['product_sku'];
	$product_brands = $_POST['product_brands'];
	$productattributes = $_POST['productattributes'];
	
	$output = '';
    $output .= '<div class="site-slider-wrapper relative">';
	$output .= '<div
		id="'.esc_attr($catid).'"
		class="'.esc_attr($productclass).'"
		data-speed="'.esc_attr($speed).'"
		data-items="'.esc_attr($items).'"
		data-items-tablet="'.esc_attr($tablet).'"
		data-items-mobile="'.esc_attr($mobile).'"
		data-autoplay="'.esc_attr($autoplay).'"
		data-autoplay-speed="'.esc_attr($auto_speed).'""
		data-producttype="'.esc_attr($producttype).'"
		data-perpage="'.esc_attr($post_count).'"
		data-best_selling="'.esc_attr($best_selling).'"
		data-featured="'.esc_attr($featured).'"
		data-onsale="'.esc_attr($on_sale).'"
		data-stockprogressbar="'.esc_attr($stockprogressbar).'"
		data-countdown="'.esc_attr($countdown).'"
		data-stockstatus="'.esc_attr($stockstatus).'"
		data-shippingclass="'.esc_attr($shippingclass).'"
		data-product_sku="'.esc_attr($product_sku).'"
		data-product_brands="'.esc_attr($product_brands).'"
		data-productattributes="'.esc_attr($productattributes).'"
		data-margin="30"
		data-margin-tablet="20"
		data-margin-mobile="10"
		data-slides-per-group="1"
		data-slides-per-group-tablet="1"
		data-slides-per-group-mobile="1"
		data-direction="horizontal"
		data-loop="false"
		data-dots-click="true"
		data-simulate-touch="true"
		data-mousewheel="false"
	>';
			  
	$output .= '<div class="slider-preloader">';
	$output .= '<div class="preloader"></div>';
	$output .= '</div>';
	$output .= '<div class="swiper-wrapper">';
	$args = array(
		'post_type' => 'product',
		'posts_per_page'         => $post_count,
		'order'          => 'DESC',
		'orderby'        => 'date',
		'post_status'    => 'publish',
	);

	$args['tax_query'][] = array(
		'taxonomy' 	=> 'product_cat',
		'field' 	=> 'term_id',
		'terms' 	=> $catid,
	);
	
	if($best_selling == 'true'){
		$args['meta_key'] = 'total_sales';
		$args['orderby'] = 'meta_value_num';
	}

	if($featured == 'true'){
		$args['tax_query'] = array( array(
			'taxonomy' => 'product_visibility',
			'field'    => 'name',
			'terms'    => array( 'featured' ),
				'operator' => 'IN',
		) );
	}
	
	if($on_sale == 'true'){
		$args['meta_key'] = '_sale_price';
		$args['meta_value'] = array('');
		$args['meta_compare'] = 'NOT IN';
	}
	
    query_posts( $loop );

		$loop = new \WP_Query( $args );
		if ( $loop->have_posts() ) {
			while ( $loop->have_posts() ) : $loop->the_post();
				global $product;
				global $post;
				global $woocommerce;

			$output .= '<div class="swiper-slide"> ';
			$output .= '<div class="'.esc_attr( implode( ' ', wc_get_product_class( '', $product->get_id()))).'"> ';
			
			if($producttype == 'type4'){
				$output .= ignavo_product_type4($stockprogressbar, $stockstatus, $shippingclass, $countdown, $product_sku, $product_brands, $productattributes);
			} elseif($producttype == 'type3'){
				$output .= ignavo_product_type3($stockprogressbar, $stockstatus, $shippingclass, $countdown, $product_sku, $product_brands, $productattributes);
			} elseif($producttype == 'type2'){
				$output .= ignavo_product_type2($stockprogressbar, $stockstatus, $shippingclass, $countdown, $product_sku, $product_brands, $productattributes);
			} else {
				$output .= ignavo_product_type1($stockprogressbar, $stockstatus, $shippingclass, $countdown, $product_sku, $product_brands, $productattributes);
			}
			
			$output .= '</div>';
			$output .= '</div>';
			
			endwhile;
		}
		wp_reset_postdata();
		
		$output .= '</div>';
		$output .= '</div>';
		$output .= '<div class="site-slider-controls">';
		$output .= '<div class="swiper-pagination" style="--slider-dots-offset: 24px"></div>';
		$output .= '<div class="swiper-button-prev half on-hover" style=" --swiper-navigation-boxed: 1; --swiper-navigation-size: 48px; --swiper-navigation-font-size: 16px; --swiper-navigation-weight: 600; --swiper-navigation-background: #fff; --swiper-navigation-hover-background: #fff; --swiper-navigation-border: rgb(var(--colors-gray-200)); --swiper-navigation-hover-border: rgb(var(--colors-gray-300)); --swiper-navigation-radius: 50%; --swiper-navigation-shadow: var(--shadow-xs);"></div>';
		$output .= '<div class="swiper-button-next half on-hover" style=" --swiper-navigation-boxed: 1; --swiper-navigation-size: 48px; --swiper-navigation-font-size: 16px; --swiper-navigation-weight: 600; --swiper-navigation-background: #fff; --swiper-navigation-hover-background: #fff; --swiper-navigation-border: rgb(var(--colors-gray-200)); --swiper-navigation-hover-border: rgb(var(--colors-gray-300)); --swiper-navigation-radius: 50%; --swiper-navigation-shadow: var(--shadow-xs);"></div>';
		$output .= '</div>';
			
	 	$output_escaped = $output;
	 	echo $output_escaped;

	
		wp_die();
}