#php #ajax #wordpress #woocommerce #taxonomy
#php #ajax #wordpress #woocommerce #таксономия
Вопрос:
я использую Ajax и следующую функцию (в functions.php ), чтобы получить продукт, который имеет соответствующие атрибуты. Все работает хорошо, но если нет продуктов с точным атрибутом (pa_three), я хочу, чтобы он извлек продукт со следующим ближайшим атрибутом pa_three. pa_three — это длина.
Есть идеи о том, как я могу этого добиться?
<?php
function example_filter_function(){
$final_one = $_POST['final_one'];
$final_two = $_POST['final_two'];
$final_three = $_POST['final_three'];
$args = array(
'orderby' => 'date',
'post_type' => 'product',
'posts_per_page' => 1,
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'product_cat',
'terms' => 1,
),
array(
'taxonomy' => 'pa_one',
'field' => 'id',
'terms' => $final_one
),
array(
'taxonomy' => 'pa_two',
'field' => 'id',
'terms' => $final_two
),
array(
'taxonomy' => 'pa_three',
'field' => 'slug',
'terms' => $final_three
)
)
);
$query = new WP_Query($args); if ($query->have_posts()) : while ($query->have_posts()): $query->the_post();?>
<h3><?php the_title();?></h3>
<?php endwhile; wp_reset_postdata();
die();
}
add_action('wp_ajax_myfilter', 'example_filter_function');
add_action('wp_ajax_nopriv_myfilter', 'example_filter_function');
?>