khunmax
khunmax

Reputation: 101

Remove Woocommerce free products from a WP_Query loop

I am using the php below in an enhanced text widget to display a list of recently added products. It works fine.

However, my shop also has free products (Price 0), and I do not want these displayed in the list.

What to I need to add to the code to exclude free products?

<?php  
    $args = array(
        'post_type'      => 'product',
        'posts_per_page' => 8,
    );

    $loop = new WP_Query( $args );

    while ( $loop->have_posts() ) : $loop->the_post();
        global $product;
        echo '<br /><a href="'.get_permalink().'">'.get_the_title().'</a>';
    endwhile;

    wp_reset_query();
?>

Upvotes: 2

Views: 209

Answers (1)

Mtxz
Mtxz

Reputation: 3869

You could try with wp_query only

$loop = new WP_Query( array(
        'post_type'      => 'product',
        'posts_per_page' => 8,
        'meta_query'   => [[
            'key' => '_price',
            'value' => 0,
            'compare' => '>',
            'type' => 'NUMERIC'
        ]]
    ) );

Check here for more examples.

Upvotes: 1

Related Questions