Как добавить поиск товаров по артикулу
По умолчанию поиск в woocommerce не ищет товары по артикулу. Самый простой способ добавить его без дополнительных плагинов – вставить такой код в файл functions.php дочерней темы
add_filter( 'posts_search', function ( $search, $query_vars ) {
global $wpdb;
if ( isset( $query_vars->query['s'] ) && ! empty( $query_vars->query['s'] ) ) {
$args = [
'posts_per_page' => - 1,
'post_type' => 'product',
'meta_query' => [
[
'key' => '_sku',
'value' => $query_vars->query['s'],
'compare' => 'LIKE',
],
],
];
$posts = get_posts( $args );
if ( empty( $posts ) ) {
return $search;
}
$get_post_ids = [];
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;
}, 999, 2 );
Вам помог ответ?