WooCommerce: проверить если продукт/товар на распродаже

WooCommerce: проверить если продукт/товар на распродаже

· WordPress, Другое и Снипеты · 3 мин чтения

WooCommerce безумно вырос за последнее время и на текущий момент, многие дают предпочтение именно ему из всех, даже платных конкурентов. Если вы, как разработчик разберетесь в API этого плагина, тогда вам добавиться жирный плюс в резюме, потому что заказы связанные с ним будут появляться все чаще и чаще. Конкретно в этой записи я хочу рассмотреть то, как определить находится товар или продукт на распродаже или нет. 

Код

Проверить статус товара (на распродаже или нет)

Если вы находитесь внутри цикла, то вы можете выделить глобальный параметр $product и уже из него вытянуть нужную вам информацию (в нашем случае нужно именно распродажу).

Выглядит это все следующий образом:

global $product;

/**
 * Если продукт на распродаже 
 */
if ( $product->is_on_sale() ) {
    ...
}

Для удобства вы можете сделать код выше функцией и вызывать её в нужный момент.

function woo_is_product_on_sale() {	
  global $product;

  return $product->is_on_sale();
}

Теперь просто вызываете woo_is_product_on_sale() и с легкостью проверяете статус продукта.

Получить все товары/продукты на распродаже с помощью собственного SQL запроса

Для начала создадим массив $args, в котором будет содержаться вся информация для будущего SQL запроса и делаем новый запрос с помощью new WP_Query() класса и сохраняем все в в $loop.

$args = [
    'post_type'      => 'product',
    'posts_per_page' => 8,
    'meta_query'     => [
        'relation' => 'OR',
        [
            'key'           => '_sale_price',
            'value'         => 0,
            'compare'       => '>',
            'type'          => 'numeric'
        ],
        [ 
            'key'           => '_min_variation_sale_price',
            'value'         => 0,
            'compare'       => '>',
            'type'          => 'numeric'
        ]
    ]
];

$loop = new WP_Query( $args );

На этом все, дальше вы уже выводите продукты как вам нужно.

Шорткод

Вы также можете вывести продукты с распродажи отдельным шорткодом. Делается это следующим образом:

[sale_products columns="3" per_page="12"]

Объяснение параметров шорткода:

  • columns — это сколько показывать товаров в ряд. Например, если укажите 3, то будет выводиться 3 товара в ряд
  • per-page — это сколько выводить товаров на страницу. Допустим, у вас 100 товаров на распродаже и вы указали 20, то вам покажется 5 страниц.

Вот как это будет примерно выглядеть:

WooCommerce вывод товаров с распродажи

Это стандартный шаблон от WooCommerce, если вам хочется чего-то, другого, свежего и бесплатного, то предлагаю посмотреть первую и вторую подборку, которые я уже делал ранее.

Если у вас хорошо с английским, то можете тут почитать дополнительные параметры для шорткода.