WC_Query::product_query PHP Method

product_query() public method

Query the products, applying sorting/ordering etc. This applies to the main wordpress loop.
public product_query ( mixed $q )
$q mixed
    public function product_query($q)
    {
        // Ordering query vars
        $ordering = $this->get_catalog_ordering_args();
        $q->set('orderby', $ordering['orderby']);
        $q->set('order', $ordering['order']);
        if (isset($ordering['meta_key'])) {
            $q->set('meta_key', $ordering['meta_key']);
        }
        // Query vars that affect posts shown
        $q->set('meta_query', $this->get_meta_query($q->get('meta_query')));
        $q->set('tax_query', $this->get_tax_query($q->get('tax_query')));
        $q->set('posts_per_page', $q->get('posts_per_page') ? $q->get('posts_per_page') : apply_filters('loop_shop_per_page', get_option('posts_per_page')));
        $q->set('wc_query', 'product_query');
        $q->set('post__in', array_unique((array) apply_filters('loop_shop_post_in', array())));
        do_action('woocommerce_product_query', $q, $this);
    }