add_action( 'wp_ajax_btt_ajax', 'btt_ajax' );
add_action( 'wp_ajax_nopriv_btt_ajax', 'btt_ajax' );
function btt_ajax() {
global $wp_query;
if (isset($_POST)) {
$value = $_POST['value'];
query_posts(array_merge(
array(
'meta_value' => $value
),
$wp_query->query));
if(have_posts()) :
while(have_posts()) : the_post();
require 'tpl.php';
endwhile;
endif;
}
wp_die();
}
<div class="filter">
<h3>Выбор категории</h3>
<ul>
<li><a href="#" data-value="">Все категории</a></li>
<li><a href="#" data-value="detali_acess">Аксессуары</a></li>
<li><a href="#" data-value="detali_dvig">Двигатель</a></li>
<li><a href="#" data-value="detali_kuzov_vnutri">Кузов внутри</a></li>
<li><a href="#" data-value="detali_kuzov_snar">Кузов наружные элементы</a></li>
<li><a href="#" data-value="detali_optika">Оптика</a></li>
<li><a href="#" data-value="detali_podveska">Подвеска</a></li>
<li><a href="#" data-value="detali_topliv_sistema">Топливная система</a></li>
<li><a href="#" data-value="detali_tormozn_sistema">Тормазная система</a></li>
<li><a href="#" data-value="detali_transsmis">Трансмиссия</a></li>
<li><a href="#" data-value="detali_elektrika">Электрика</a></li>
<li><a href="#" data-value="detali_kolesa">Колеса</a></li>
</ul>
</div>
$('.filter ul li a').click(function(e) {
e.preventDefault();
var attrFocus = $(this).attr('data-value');
var prodContent = $('.products_list');
$.ajax({
url: '/wp-admin/admin-ajax.php',
type: 'POST',
data: {
value: attrFocus,
action: 'btt_ajax'
},
beforeSend: function() {
prodContent.animate({opacity: '.3'}, 250)
},
success: function(res) {
prodContent.html(res);
prodContent.animate({opacity: '1'}, 250)
},
error: function() {
console.log('error ajax');
}
});
});
$args = array(
'post_type' => 'product'
);
if ( isset( $_POST['value'] ) && sizeof($viscocity_ids) > 0 ) {
$args['tax_query'] = array( 'relation'=>'AND' ); // если несколько параметров для фильтрации добавляем AND
}
$args['tax_query'][] = array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => $_POST['value']
);
if ( sizeof($viscocity_ids) > 0 ) {
$args['tax_query'][] = array(
'taxonomy' => 'pa_viscocity',
'field' => 'term_id',
'terms' => $viscocity_ids
);
}
$loop = new WP_Query( $args );
if ( $loop->have_posts() ) {
while ( $loop->have_posts() ) : $loop->the_post();
global $product;
wc_get_template_part( 'content', 'product' );
endwhile;
} else {
echo "Нет товаров, соответствующих выбранным параметрам фильтра!";
}
wp_reset_postdata();
die();