'How to hide products with stock less than 2 on WooCommerce shop page

I own an e-Commerce business and i want to hide the products that have a stock of less than 3.

This is what i came up to:

add_action( 'woocommerce_product_query', 'react2wp_hide_products_with_stock_higher_than_two' );
function react2wp_hide_products_with_stock_higher_than_two( $q ){
    $meta_query = $q->get( 'meta_query' );
    $meta_query[] = array(
        'key'       => '_stock',
        'value'     => 2,
        'compare'   => '>'
    );
    $q->set( 'meta_query', $meta_query );
}

Have you ever set a similar code? Any errors in this line?



Solution 1:[1]

You're close, add type

'type' => 'numeric' // specify it for numeric values

function react2wp_hide_products_with_stock_higher_than_two( $q, $query ) {
    // Get any existing meta query
    $meta_query = $q->get( 'meta_query' );

    // Define an additional meta query 
    $meta_query[] = array(
        'key'       => '_stock',
        'value'     => 2,
        'type' => 'numeric', // specify it for numeric values
        'compare'  => '>'
    );

    // Set the new merged meta query
    $q->set( 'meta_query', $meta_query );
}
add_action( 'woocommerce_product_query', 'react2wp_hide_products_with_stock_higher_than_two', 10, 2 );

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 7uc1f3r