web-dev-qa-db-fra.com

Woocommerce - Comment obtenir des produits dont les ventes sont comprises entre 20% et 40%?

Je dois faire écho aux produits bénéficiant d'une réduction comprise entre 20% et 40%. J'ai essayé d'utiliser la méta-requête, mais ce n'est pas comparer le pourcentage de rage. Mon code:

<ul class="products">
    <?php

        $args = array(
            'post_type'      => 'product',
            'posts_per_page' => 4,
            'meta_query'     => array(
                    'relation' => 'BETWEEN',
                    array( // Simple products type
                        'key'           => '_sale_price',
                        'value'         => 0,
                        'compare'       => '>',
                        'type'          => 'numeric'
                    ),
                    array( // Simple products type
                        'key'           => '_sale_price',
                        'value'         => 1000,
                        '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>

Mon code pour obtenir un pourcentage de remise:

global $product; 
$percentage = round( ( ( $product->regular_price - $product->sale_price ) / $product->regular_price ) * 100 );
2
wiseman

Ne changez pas en "%" si vous ne pouvez pas comparer, mais utilisez 0.00 representation - 1.00 = 100% ou 0.3 = 30%. Ça devrait marcher :)

3
user3799089