Зачастую в большинстве интернет-магазинов на странице товара можно встретить сопутствующие товары, так называемые аксессуары. Например, к межкомнатной двери дверные ручки, к фотоаппарату объективы, штативы и пр.
Многие знают, что в WooCommerce есть стандартный блок “Похожие товары”, выводящий позиции из той же самой товарной категории. А что, если нам к определенному товару из категории “Смартфоны” нужно вывести список аксессуаров из категории “Чехлы”.
Этот вопрос мучал меня не один день, соответствующих плагинов я не нашел, на специализированных форумах мне также никто не помог. В итоге пришлось решать проблему самому. Метод, скажем так, “хардкорный”, но вполне рабочий. Выборка осуществляется случайно (можно изменить).
Вся суть заключается в том, что нам нужно поправить код, отвечающий за вывод “Похожих товаров”. Однако, стоит помнить, что при обновлении плагина WooCommerce, код придется менять снова. У вас должен быть настроен ЧПУ, то есть URL должен выглядеть понятным для человека (напр., /smartfony/), но можно настроить и по ID.
Нам нужно отредактировать файл related.php, находящийся по адресу /wp-content/plugins/woocommerce/templates/single-product/. Находим строчку:
if ( $products->have_posts() ) : ?>
С выходом WooCommerce 3.0.x код слегка преобразился, стал больше отвечать современным стандартам. Здесь найдем строчку:
if ( $related_products ) : ?>
Перед ней вставляем интересующий наш код:
if ( $products->have_posts() AND preg_match("/smartfony/i", get_permalink($offer->ID)) ) : ?> <div class="related products"> <h2 style="margin-bottom: -24px;">Сопутствующие аксессуары</h2> <?php echo do_shortcode('[product_category category="chehly" per_page="4" columns="4" orderby="rand" order="rand"]'); ?> </div> <?php endif;
Первая строчка задает категорию, где выводить сопутствующие товары. Вторая – из какой категории брать товарные позиции.
В WooCommerce 3.0.x наш пример выглядит следующим образом:
if ( preg_match("/mezhkomnatnye-dveri/i", get_permalink($offer->ID)) ) : ?> <section class="related products"> <h2 style="margin-bottom: -24px;">Рекомендуемые дверные ручки</h2> <?php echo do_shortcode('[product_category category="dvernye-ruchki" per_page="4" columns="4" orderby="rand" order="rand"]'); ?> </section> <?php endif;
Сохраняем, обновляем страницу товара, наслаждаемся результатом.
2,577 total views, 1 views today
2 комментария. Оставить новый
Столкнулся с такой же проблемой. Нужно выводить сопутствующие товары по атрибуту, либо по метке товара. Тоже не могу найти плагин 🙁
сейчас в настройках каждого товара есть апсейли и просейлы. одни предназначены для показа сопутствующих товаров под редактируемым товаром (выбираются вручную), другие – непосредственно в корзине.