Есть магазин на 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');