I am using woocommerce. In short I need to find products where attributes term value should be "LIKE" 100 value. So it should find terms like: 100/104, 100/99.
My URL search: domain.com/?pa_boltpcd=100
So I have attribute (pa_boltpcd) which is a taxonomy. This taxonomy (pa_boltpcd) has terms:
100
100/104
100/99
At the moment it only shows products where term value is exactly "100". Why where is no such operator "like" which could find all these 3 terms by searching for "100" value.
What I tried:
function taxonomy_like( $q ) {
if(isset($q->query['pa_boltpcd'])){
$tax_query = (array) $q->get( 'tax_query' );
$termIds = get_terms([
'name__like' => '100',
'fields' => 'ids'
]);
$tax_query[] = array(
'taxonomy' => 'pa_boltpcd',
'field' => 'term_id',
'terms' => $termIds,
'operator' => 'IN'
);
$q->set( 'tax_query', $tax_query );
}
}
add_action( 'woocommerce_product_query', 'taxonomy_like' );
With this hook first I am searching for terms where is value 100 with criteria 'LIKE', so it will find all these terms.
Then I collect found terms id's.
- After that I am creating tax_query where it could search by my founded id's.
BUT the problem is that it returns the same result, and it shows products where term is exactly is 100 ...
Please give me some tips what to do??? Sorry for bad english, correct me where is not clear.
