web-dev-qa-db-fra.com

Extrait de boucle de produits WooCommerce uniquement en vente en ligne

J'essaie de ne choisir que OnSale dans une boucle WooCommerce via un extrait de code. Pour cela, j'ai essayé d'utiliser le code ci-dessous, mais celui-ci sélectionne tous les produits. Je veux seulement choisir OnSale en boucle.

<!-- 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 -->

Donc, pour mon désir, que dois-je faire?

1
Muhammad Hassan

Enfin, j'ai eu le code. En utilisant le code ci-dessous, vous pouvez choisir OnSale des produits qui sont Simple Product On Sale ou Produit variable en vente . Gardez à l'esprit que ce code sélectionnera toutes les publications dans lesquelles vous avez ajouté un prix de vente. Donc, évitez d’ajouter le prix dans ce champ (montré dans l’image attachée) si votre prix de vente est identique au prix original, car ce ne sera donc pas un produit vendu mais ce code le sélectionnera dans les boucles des produits en vente.

WooCommerce Product Data Form 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 -->
4
Muhammad Hassan