• Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Сортировка постов по типам (группировка, вариативные, партнерские)

Полезная ли информация?

  • да

    Голосов: 3 75.0%
  • нет

    Голосов: 0 0.0%
  • сложно реализовать

    Голосов: 1 25.0%

  • Всего проголосовало
    4
Image CMS

Grollem

Опытный
#1
Ни для кого не секрет что woo есть разные типы товаров.
Сейчас расскажу как вывести товары только определенного типа в каталоге.
1. Создаем страницу и называем ее, например Группированные товары
2. Выводим ее в пункт меню
3. На странице воспользуемся встроенным шорткодом вуу [product_category category="vse-tovaryi"]
4. Переопределяем шаблон вукомерса по адресу wp-content/plugins/woocommerce/templates/content-product.php (для этого в папке своей темы создаем папку woocommerce/ и копируем этот файл туда.
5. Открываем файл content-product.php идем в район 40 строки и перед
Код:
// тут
<li <?php post_class( $classes ); ?>>
    <?php do_action( 'woocommerce_before_shop_loop_item' ); ?>
Вставляем код
Код:
// тут
<?php
$obj = get_queried_object();
$product_type = get_post_custom_values('products_type', $obj->ID);
if($product->product_type == $product_type[0] || $product_type == NULL )  {?>
// наш код
<li <?php post_class( $classes ); ?>>
    <?php do_action( 'woocommerce_before_shop_loop_item' ); ?>
так же идем в конец этого файла и вставляем
Код:
<?php } ?>
6. Идем в созданную нами странцу и создаем произвольное поле c именем products_type
Значения в поле могут быть
simple - простой товар
grouped - группированные товар
variable - вариативный товар
external - партнерский товар
 
Последнее редактирование:

Vicos

Форумчанин
#2
Спасибо! Идея помогла.
Тогда дополню для переопределения шаблона вывода content-single-product.
При отображении товара, ?product=товар-х, в глобальной переменной $product имеется свойство product_type, по нему то и можно будет разделять вариант вывода продукта.
Код:
<?php if ($product->product_type == 'grouped') :
//Выводим грппированный товар
elseif ($product->product_type == 'variable') :
//Выводим вариативный товар
elseif ($product->product_type == 'simple') :
//Выводим простой продукт
endif;
?>
 

Grollem

Опытный
#3
Спасибо! Идея помогла.
Тогда дополню для переопределения шаблона вывода content-single-product.
При отображении товара, ?product=товар-х, в глобальной переменной $product имеется свойство product_type, по нему то и можно будет разделять вариант вывода продукта.
Код:
<?php if ($product->product_type == 'grouped') :
//Выводим грппированный товар
elseif ($product->product_type == 'variable') :
//Выводим вариативный товар
elseif ($product->product_type == 'simple') :
//Выводим простой продукт
endif;
?>
Ну вот в моем случае получается, можно для любой страницы задать свой список отображения.
Ну а вообще недавно стояла задача сделать разные типы товаров, совершенно не предсказуемая сетка. Длинные, широкие, с заголовком справа, баннер.
 

Vicos

Форумчанин
#4
А как при клике на товар из каталога переопределить страницу для его отображения? В вашем случае это делается для вывода списка товаров, мне же требовалось изменять именно карточку товара.
 

Grollem

Опытный
#5
А как при клике на товар из каталога переопределить страницу для его отображения? В вашем случае это делается для вывода списка товаров, мне же требовалось изменять именно карточку товара.
1 вариант. можно на странице single-page получить ярлык категории или id категории этого товара и по нему изменить (в случае если у вас товары не бывают в разных категориях)
2 вариант. Для того товара который вы хотите изменить можно создать кастомное поле например (my_custom_prioduct) его читать на странице single_page и видоизменять товары у которого такое поле есть.
Так же где то видел функцию чтобы присвоить кастомные поля сразу одной или нескольким категориям товара, чтобы в каждый не заходить и руками не прописывать, уверен что этот код можно было бы заточить не под категорию а под тип товара.
 

Vicos

Форумчанин
#6
Спасибо! Теперь имеем несколько довольно универсальных способов изменять шаблон вывода товара.
 
Сверху Снизу