Только WooCommerce OnSale Products Loop Snippet

Я пытаюсь выбрать только продукты OnSale в цикле WooCommerce через фрагмент. Для этого я попытался использовать ниже код, но он выбирает все продукты. Я хочу только выбрать продукты OnSale в цикле.

<!-- WooCommerce New Products --> <ul class="products"> <?php $args = array( 'post_type' => 'product', 'posts_per_page' => 4 ); $loop = new WP_Query( $args ); if ( $loop->have_posts() ) { while ( $loop->have_posts() ) : $loop->the_post(); woocommerce_get_template_part( 'content', 'product' ); endwhile; } else { echo __( 'No products found' ); } wp_reset_postdata(); ?> </ul> <!-- WooCommerce New Products --> 

Итак, для моего желания, что мне делать?

Наконец, я получил код. Используя приведенный ниже код, вы можете выбрать продукты OnSale , которые либо продаются по простому продукту , либо продаются переменным продуктом . Имейте в виду, что этот код будет выбирать каждый пост, в который вы добавили цену продажи. Поэтому избегайте добавления цены в этом поле (показано в прикрепленном изображении), если ваша цена продажи такая же, как и первоначальная цена, потому что тогда она не будет продуктом продажи, но этот код выберет ее в цикле продуктов продаж.

Форма данных продукта WooCommerce ScreenShot

 <!-- WooCommerce On-Sale Products --> <ul class="products"> <?php $args = array( 'post_type' => 'product', 'posts_per_page' => 4, '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' ) ) ); $loop = new WP_Query( $args ); if ( $loop->have_posts() ) { while ( $loop->have_posts() ) : $loop->the_post(); woocommerce_get_template_part( 'content', 'product' ); endwhile; } else { echo __( 'No products found' ); } wp_reset_postdata(); ?> </ul> <!-- WooCommerce On-Sale Products -->