Как делать ajax фильтр wordpress?

Есть магазин на wordpress с woocommerce.
Задача - производить сортировку без перезагрузки страницы. Тема разрабатывалась не мной.
Имеется файл с кастомным php. В нём присутствует фильтр. Помогите внести правки для ajax загрузки товаров.
Код фильтра приложу:

function go_filter(){

	$args = array();   

	// фильтруем пост по таксономии с иерархией (как у категорий), причем пост должен принадлежать двум терминам таксономии одновременно

	global $wp_query; // нужно заглобалить текущую выборку постов

	// сортировка

	if( isset( $_GET['prod_typeorder']) ){

		if ( $_GET['prod_typeorder'] == 'price') {

			$args  = array( 

				'meta_key' => '_price',

				'orderby' => 'meta_value_num',

				'order' => 'ASC',

			); 

		} 

		elseif($_GET['prod_typeorder'] == 'price-desc'){

			$args  = array( 

				'meta_key' => '_price',

				'orderby' => 'meta_value_num',

				'order' => 'DESC',

			); 

		}

		else {

			$args  = array(

				'orderby' => $_GET['prod_typeorder'], 

			); 

		} 

	}	

	// фильтр по категориям

	if( isset( $_GET['categoryfilter']) ){

		$args['tax_query'] = array(

			array(

				'taxonomy' => 'product_cat',

				'field' => 'id',

				'terms' => $_GET['categoryfilter']

			)

		);

	}	

	// фильтр по цене

	if( isset( $_GET['my_range'] )   ) {  

		$min_max = explode(";", $_GET['my_range']);

		$args['meta_query'][] = [

			'key'     => '_price',

			'value'   => [(int)$min_max[0], (int)$min_max[1]],

			'type' => 'numeric', 

			'compare' => 'BETWEEN',

		];  

	}

	query_posts(array_merge($args,$wp_query->query));

	?>
	<?php 

}

add_action('wp_ajax_myfilter', 'true_filter_function'); 

add_action('wp_ajax_nopriv_myfilter', 'true_filter_function');
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы