@smash_wp

Как вывести только товары с акцией в WooCommerce?

Как вывести только те товары, на которые есть акция?

Т. е., такие товары, у которых помимо базовой цены, есть цена распродажы.
  • Вопрос задан
  • 9335 просмотров
Решения вопроса 1
wppanda5
@wppanda5 Куратор тега WordPress
WordPress Mедведь
так wp-panda.com/woocommerce_posts/woocommerce-shortco...

цикл сильно прощще

<ul class="products">
	<?php
                $product_ids_on_sale = wc_get_product_ids_on_sale();

		$args = array(
			'post_type' => 'product',
                        'post__in' => array_merge( array( 0 ), $product_ids_on_sale )
			);
		$loop = new WP_Query( $args );
		if ( $loop->have_posts() ) {
			while ( $loop->have_posts() ) : $loop->the_post();
				wc_get_template_part( 'content', 'product' );
			endwhile;
		} else {
			echo __( 'Продуктов не найдено' );
		}
		wp_reset_postdata();
	?>
</ul><!--/.products-->
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
CrewCut
@CrewCut
Коплю силы на переезд в тропики
Можно шорткодом [sale_products per_page="12"] (12 - кол-во продуктов на вывод)

Можно кодом:
$args = array(
    'post_type'      => 'product',
    'meta_query'     => array(
        'relation' => 'OR',
        array( // Simple products type
            'key'           => '_sale_price',
            'value'         => 0,
            'compare'       => '>',
            'type'          => 'numeric'
        ),
        array( // Variable products type
            'key'           => '_min_variation_sale_price',
            'value'         => 0,
            'compare'       => '>',
            'type'          => 'numeric'
        )
    )
);

query_posts( $args );


Узнать есть ли скидка:
$product->is_on_sale()

--
Смотря что нужно в конкретном случае
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы