Woocommerce: запрос woocommerce для простых и разнообразных товаров на складе - PullRequest
0 голосов
/ 23 сентября 2018

Я собираюсь написать запрос для продуктов woocommerce, чтобы показать продукты, у которых есть запас = 1. Также, если продукт является переменным, а любые переменные имеют запас = 1, следует включить в этот запрос.Например:

Продукт один:

  • просто
  • количество на складе: 1

Продукт два:

  • просто
  • количество на складе: 5

Продукт три:

  • изменение
  • переменная одна:
  • количество на складе: 1
  • переменная два:
  • количество на складе: 4
  • переменная три:
  • количество на складе: 7

Продукт четыре:

  • вариант
  • номер переменной:
  • Количество на складе: 3
  • Переменная два:
  • Количество на складе: 2
  • Переменная три:
  • Количество на складе: 5

, поэтому запрос должен возвращать продукт один и продукт 3.

Я использовал следующий запрос:

$query = array(
        'relation' => 'AND',
        array(
            'key'     => '_stock_status',
            'value'   => 'instock',
            'compare' => '='
        ),
        array(
            'key'     => '_stock',
            'type'    => 'numeric',
            'value'   => '1',
            'compare' => '='
        ),
    ); 

Но, это не сработает, верните продукт три.не могли бы вы помочь мне?

спасибо заранее.

1 Ответ

0 голосов
/ 23 сентября 2018

вам нужно включить тип записи product_variation для продукта вариации & product, чтобы вы также могли фильтровать продукт переменной.

, чтобы вы могли выполнять следующие действия:

add_action( 'woocommerce_product_query', 'modify_query', 10, 2 );

function modify_query( $q, $instance ) {

    $post_type = array( 'product', 'product_variation' );

    $q->set( 'post_type', (array) $post_type );
    $meta_query[] = [
        'relation' => 'AND',
        [
            'key'     => '_stock_status',
            'value'   => 'instock',
            'compare' => '=',
        ],
        [
            'key'     => '_stock',
            'type'    => 'numeric',
            'value'   => '1',
            'compare' => '=',
        ],

    ];

    $q->set( 'meta_query', $meta_query );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...