Как объединить несколько однотипных карточек товара в одну?
Здравствуйте. Вариации товара на сайт залиты как простые товары и "связаны" плагином WPC Linked Variation for WooCommerce. То есть, в карточке товара этот плагин выводит все размеры этого товара. При клике на другой размер мы попадаем на этот же товар но с другим размером, ссылкой, описанием, характеристиками. Заливать товар как вариативный в этом случае не подходит. Но, есть одна проблема. В каталоге теперь несколько карточек товара с одним фото. Возможно ли, в каталоге объединить эти карточки в одну?
Дополнительно:
Ответы:
Как вариант, в цикле вывода товаров каталога проверять есть ли у этого товара родительский товар к которому он привязан (смотрите доки WPC или в каком мета-поле плагин хранит запись о родителе). И если родитель имеется, то просто переходим к следующей итерации в цикле вывода -> continue;
Таким образом в каталоге останется только родительский товар.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Да, в каталоге можно показывать только одну карточку из группы связанных простых товаров. Но правильная реализация зависит от того, как WPC Linked Variation хранит связь: через post meta, taxonomy, group id или свой объект. Нужно найти мета-ключ группы и исключать из каталога все дочерние/неосновные товары.
Общий принцип такой: у каждой группы должен быть один главный товар, а остальные товары получают метку «не показывать в каталоге». Если плагин хранит ID родителя в мета-поле, фильтр может выглядеть так:
add_action('woocommerce_product_query', function ($query) { if (is_admin() || is_search()) { return; } $meta_query = (array) $query->get('meta_query'); $meta_query[] = [ 'relation' => 'OR', [ 'key' => '_linked_parent_id', 'compare' => 'NOT EXISTS', ], [ 'key' => '_linked_parent_id', 'value' => '', 'compare' => '=', ], ]; $query->set('meta_query', $meta_query); });
_linked_parent_idздесь пример, его нужно заменить на реальный ключ плагина. Найти его можно в таблицеwp_postmetaпо ID товара или через экспорт метаполей.Альтернативный путь без кода: для дублей поставить видимость каталога «скрытый» или «только поиск», а главный товар оставить видимым. Это проще и безопаснее, если групп немного. Если товаров много, делайте автоматизацию через реальный meta key плагина.