Похоже, что функция поиска для продуктов WooCommerce не проверяет термины таксономии «product_tag» или поле SKU? Я добавил артикулы в качестве тегов продуктов к соответствующим продуктам, но при поиске артикула он по-прежнему ничего не возвращает ... Как мне сделать так, чтобы функция поиска проверяла условия product_tag? Я пробовал много разных вещей, от добавления tax_query в фильтр pre_get_post до совершенно нового цикла WP_Query, по какой-то причине он просто не может искать product_tags .... так какой смысл в теге продукта ???
Поиск товаров Woocommerce не проверяет product_tag?
Ответы (2)
Я пробовал код от woo и других для поиска по артикулу безрезультатно. Однако плагин search-all, загружаемый из репозитория, выполняет свою работу.
person
Win
schedule
23.10.2012
У меня есть решение для поиска товаров по коду SKU.
Это слишком просто, просто вставьте следующий код в function.php, и тогда вы сможете увидеть изменения в результатах поиска.
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 );
person
Rohit Verma
schedule
11.07.2019