Я пользуюсь woocommerce.Короче говоря, мне нужно найти продукты, в которых атрибуты value value должны быть равны 100 LIKE.Таким образом, он должен найти такие термины, как: 100/104, 100/99.
My URL search: domain.com/?pa_boltpcd=100
Итак, у меня есть атрибут (pa_boltpcd), который является таксономией.Эта таксономия (pa_boltpcd) имеет термины:
100
100/104
100/99
В настоящее время она показывает только те продукты, в которых значение термина равно "100".Почему нет такого оператора «лайк», который мог бы найти все эти 3 термина, выполнив поиск значения «100».
Что я пробовал:
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' );
Сэтот хук сначала я ищу термины, где значение 100 с критериями «LIKE», поэтому он найдет все эти термины.
Затем я собираю идентификаторы найденных терминов.
- После этого я создаю tax_query, где он мог бы искать по моим основанным идентификаторам.
НО проблема в том, что он возвращает тот же результат, и показывает продукты с точным значением 100 ...
Пожалуйста, дайте мне несколько советов, что делать ???Извините за плохой английский, поправьте меня, где не понятно.