На днях на одном из сайтов на WooCommerce клиент пожаловался, что перестал работать поиск товаров в админке. Он объяснил что не работает поиск когда вводишь исходное слово в поле «Поиск по товарам», а остальные фильтры по умолчанию.
Что такое вызвало, не понятно. До этого были обновлены многие плагины, я проверил на старой версии сайта (да, есть такое, когда я сохраняю для себя), там все работало.
Посмотрел строку url которую создает запрос, вот что там:
&post_status=all&post_type=product&action=-1&product_visibility=0&seo_filter&readability_filter&product_type&stock_status&product_cat&paged=1&action2=-1
Удалив параметр &product_cat из запроса, поиск работал нормально, т.е. то что нужно искал.
Не стал сильно заморачиваться с поиском плагина виновника этой ситуации, а просто добавил код в functions.php
add_action( 'pre_get_posts', 'products_pre_get_posts' );
function products_pre_get_posts( $query ) {
if(is_admin()){
$query->set( 'tax_query', array(
array(
'taxonomy' => 'product_cat',
'field' => 'term_id',
'terms' => get_terms( array( 'taxonomy' => 'product_cat', 'fields' => 'ids' ) )
)
));
}
}
Всё! Поиск работает как нужно и с параметром product_cat.
Если кто сталкивался с такой проблемой и нашел «виновника» — отпишитесь в комментариях, что за плагин мешает нормальному поиску товаров в админке.
P.S. После внесения выше указанного кода у клиента перестали отображаться группы полей на странице плагина ACF Pro (Advanced Custom Fields PRO)
Выглядело это так:
Решается проблема легко, я изменил немного код:
add_action( 'pre_get_posts', 'products_pre_get_posts' );
function products_pre_get_posts( $query ) {
if(is_admin()){
global $pagenow;
if (( $pagenow == 'edit.php' ) && ($_GET['post_type'] == 'product')) {
$query->set( 'tax_query', array(
array(
'taxonomy' => 'product_cat',
'field' => 'term_id',
'terms' => get_terms( array( 'taxonomy' => 'product_cat', 'fields' => 'ids' ) )
)
));
}
}
}
Вот с таким кодом поиск в админке работает ACF плагин отображает свои данные, по сути я заставил код работать только на странице «Товары» плагина WooCommerce.
Подскажите, а как вернуть пагинацию?
Поиск починил кодом выше, а пагинации нет.
А до починки кода пагинация была?
И с этим фиксом при выборе категории только 1 товар отображает
А сколько должно быть?