Woocommerce product search not checking “product_tag”?

It appears as tho the search functionality for WooCommerce products does not check “product_tag” taxonomy terms, nor SKU field? I added the SKUs as product tags to their respective products, but it still returns nothing when I search for the SKU…. How do I make the search functionality check product_tag terms? I have tried many many many things from adding tax_query to pre_get_post filter, to a whole new WP_Query loop, it just fails to search product_tags for some reason….so what is the point in a Product Tag???

Related posts

Leave a Reply

2 comments

  1. I got the solution to search the products by SKU code.

    It is too simple just paste the following code in function.php and then you can see the changes in search results.

    function search_by_id_only( $search, &$query_vars ) {
        global $wpdb, $pagenow;
    
        if ( 'edit.php' == $pagenow || empty($search) ) {
            return $search;
        }
    
        $args = array(
            'posts_per_page'  => -1,
            'post_type'       => 'product',
            'meta_query' => array(
                array(
                    'key' => '_sku',
                    'value' => $query_vars->query['s'],
                    'compare' => 'LIKE'
                )
            )
        );
        $posts = get_posts( $args );
        if ( empty( $posts ) ) return $search;
        $get_post_ids = array();
        foreach($posts as $post){
            $get_post_ids[] = $post->ID;
        }
        if ( sizeof( $get_post_ids ) > 0 ) {
            $search = str_replace( 'AND (((', "AND ((({$wpdb->posts}.ID IN (" . implode( ',', $get_post_ids ) . ")) OR (", $search);
        }
        return $search;
    }
    add_filter( 'posts_search', 'search_by_id_only', 999, 2 );