Включите пользовательскую таксономию и Product_tag в поиске продуктов WooCommerce.Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Включите пользовательскую таксономию и Product_tag в поиске продуктов WooCommerce.

Сообщение Anonymous »

Я надеюсь, что один из вас, гениев, сможет мне помочь.
У меня есть сайт: https://lifesourcebookshop.co.uk/, на котором Я хочу изменить поиск продуктов WooCommerce.
Чего я хочу: Изменить запрос формы поиска WooCommerce (в интерфейсе) для отображения продуктов по поиск по названию, описанию, product_tag и пользовательской таксономии под названием book_author продуктов.
Что у меня есть: Я попробовал использовать этот код, вдохновленный этим ответом, который возвращает результаты по названию и описанию продукта. Но если я выполняю поиск по именам тегов или автору книги, результаты будут неверными.
Как воспроизвести эту проблему (поместите приведенный ниже код в файл function.php) вашей активной темы):

Код: Выделить всё

add_filter('posts_search', 'woocommerce_search_product_tag_extended', 999, 2);
function woocommerce_search_product_tag_extended($search, $query) {
global $wpdb, $wp;
$qvars = $wp->query_vars;
if (is_admin() || empty($search) ||  !(isset($qvars['s']) && isset($qvars['post_type']) && !empty($qvars['s']) && $qvars['post_type'] === 'product')) {
return $search;
}
$taxonomies = array('product_tag', 'book_author');
$tax_query  = array('relation' => 'OR');
foreach($taxonomies as $taxonomy) {
$tax_query[] = array(
'taxonomy' => $taxonomy,
'field'    => 'name',
'terms'    => esc_attr($qvars['s']),
);
}
$ids = get_posts(array(
'posts_per_page'  => -1,
'post_type'       => 'product',
'post_status'     => 'publish',
'fields'          => 'ids',
'tax_query'       => $tax_query,
));
if (sizeof($ids) > 0) {
$search = str_replace('AND (((', "AND ((({$wpdb->posts}.ID IN (" . implode( ',', $ids ) . ")) OR (", $search);
}
return $search;
}
Пример: Если вы ищете Мерфи (автор) – https://lifesourcebookshop.co.uk/?s= murphy&post_type=product, то отображается только 2 продукта. Однако если я посмотрю архив этого автора (https://lifesourcebookshop.co.uk/book_a ... il-murphy/), то там на самом деле 5 книг.
Я' Надеюсь, вы сможете помочь.
Спасибо,
Роб

Подробнее здесь: https://stackoverflow.com/questions/790 ... uct-search
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Сделайте пользовательскую таксономию продукта доступной в REST API WooCommerce.
    Anonymous » » в форуме Php
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Отображать продукт пользовательский поле как на страницы заказа в WooCommerce Admin Product Product
    Anonymous » » в форуме Php
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Как использовать пользовательскую таксономию в качестве мета_значения в запросе get_posts
    Anonymous » » в форуме Php
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Показывать пользовательскую таксономию для отдельного типа записи
    Anonymous » » в форуме Php
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Показывать пользовательскую таксономию для отдельного типа записи
    Anonymous » » в форуме Php
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»