Налоговый запрос Woocommerce, который находит следующий доступный продукт (ближайший атрибут)

#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');

?>