Бренды товаров

Содержание
  1. Настройка и конфигурация
  2. Создание брендов
  3. Редактирование и удаление брендов
  4. Назначение бренда товару
  5. Справочник по шорткодам
  6. Доступные шорткоды
  7. Бренд товара
  8. Товары бренда
  9. Список брендов товаров
  10. Миниатюры брендов товаров
  11. Миниатюры брендов товаров с описанием
  12. Расширенное использование
  13. Добавление изображения бренда на страницу товара
  14. Для одного товара
  15. Для всех товаров
  16. Добавление названия бренда на страницу товара
  17. Виджеты
  18. Описание бренда
  19. Навигация по брендам
  20. Миниатюры брендов
  21. Поддержка REST API
  22. REST API брендов
  23. Примеры
  24. Часто задаваемые вопросы
  25. Как вывести бренды товара в URL страницы товара?
  26. Как импортировать информацию о брендах из CSV-файла?
  27. Работает ли WooCommerce Brands с Google Listings & Ads?
  28. Фрагменты кода
  29. Как отсортировать бренды на сайте так же, как они отсортированы в панели администратора?
  30. Как изменить slug архивов брендов?
  31. Как сделать хлебные крошки брендов ссылками?
  32. Добавление брендов в цикл товаров на странице магазина и в архивах товаров

Бренды в WooCommerce — это дополнительный и удобный способ добавить бренды для вашего магазина, указав для каждого название, описание и изображение.

Настройка и конфигурация

Создание брендов

Чтобы начать добавлять бренды:

  1. Перейдите в: WooCommerce > Товары > Бренды. Интерфейс выглядит и работает аналогично добавлению категорий и меток — форма слева позволяет добавить бренд, а справа отображается список уже созданных брендов.
    WooCommerce Brands - Products - Brands
  2. Введите название и описание. Изображение добавлять необязательно. Бренды могут быть иерархическими — можно указать родительский бренд и вложенные дочерние бренды.
  3. Нажмите Добавить новый бренд, чтобы сохранить.

Редактирование и удаление брендов

Чтобы изменить бренд, наведите курсор на его название и нажмите Изменить или Удалить. Бренды также можно переупорядочивать с помощью перетаскивания.

WooCommerce Brands - List

Назначение бренда товару

Знаете ли вы? Если назначить товару бренд, на страницу товара также будет добавлена Schema-разметка с названием бренда, что полезно для SEO.

При этом процесс назначения брендов товарам такой же, как и при добавлении категорий и меток.

  1. Перейдите в: WooCommerce > Товары.
  2. Выберите товар, которому нужно назначить бренд.
  3. Найдите блок Бренды в правой боковой панели.
  4. Отметьте бренды, которые хотите назначить товару.
  5. Нажмите Обновить или Опубликовать, чтобы сохранить изменения.
Assign brand
Назначение бренда(ов)

Справочник по шорткодам

Чтобы выводить бренды на сайте разными способами, можно использовать следующие шорткоды. Шорткоды позволяют вызывать более сложный код с помощью нескольких символов.

Чтобы использовать шорткод, скопируйте текст, начинающийся с “[” и заканчивающийся на “]”, затем вставьте его в редактор. Например, [product_brand] выводит изображение бренда на странице отдельного товара.

Доступные шорткоды

Бренд товара

Выводит изображение одного бренда со ссылкой на страницу архива этого бренда. Работает только на страницах отдельных товаров, а не в записях или на других страницах WordPress. Обратите внимание: при выводе бренда на странице товара через этот шорткод будет показан только один бренд, а не все назначенные.

array(
      'width' => '64px',
      'height' => '64px',
      'class' => 'aligncenter'
 )

Пример шорткода:

[product_brand class="alignright"]

Товары бренда

Выводит все товары определенного бренда.

array(
      'per_page' => '12',
      'columns' => '4',
      'orderby' => 'title',
      'order' => 'asc',
      'category' => 'boots,sandals',
 )

Пример шорткода:

[brand_products brand="hiro-shoes" per_page="12" columns="4"]

Список брендов товаров

Выводит алфавитный список всех брендов со ссылками на их архивные страницы.

array(
      'show_top_links' => 'true',
      'show_empty_brands' => 'false'
 )

Пример шорткода:

[product_brand_list show_empty_brands="true"]

Миниатюры брендов товаров

Выводит список миниатюр всех брендов товаров со ссылками на их архивы.

array(
      'columns' => '12',
      'show_empty' => 'true',
      'orderby' => 'name',
      'exclude' => '2,5,8', // ID категорий, которые нужно исключить
      'number' => '' // Количество брендов для вывода.
 )

Пример шорткода:

[product_brand_thumbnails number="12" show_empty="false"]

Миниатюры брендов товаров с описанием

Выводит список миниатюр всех брендов товаров с описанием брендов и ссылками на их архивы.

array(
      'columns' => '12',
      'show_empty' => 'true',
      'orderby' => 'name',
      'exclude' => '2,5,8', // ID категорий, которые нужно исключить
      'number' => '' // Количество брендов для вывода.
 )

Пример шорткода:

[product_brand_thumbnails_description number="12" show_empty="false"]

Расширенное использование

Если вы хотите выводить шорткод на нескольких страницах товаров, его можно добавить в шаблон или в хук с помощью функции do_shortcode, например так:

echo do_shortcode('[product_brand width="64px" height="64px" class="alignright"]')

Добавление изображения бренда на страницу товара

В некоторых случаях вам может понадобиться вывести изображение бренда, связанного с товаром, прямо на странице товара, как показано ниже:

Set to align right, 64px by 64px
Выравнивание по правому краю, размер 64×64 px

Есть два способа реализовать это: для одного конкретного товара или сразу для всех товаров.

Для одного товара

В область содержимого товара можно добавить шорткод:

[product_brand width="64px" height="64px" class="alignright"]

В этом примере будет выведена ссылка на бренд товара, а также заданы ширина и высота в пикселях (по 64). Выравнивание установлено по правому краю. Поле class не является обязательным — по умолчанию используется значение aligncenter, но можно указать также выравнивание влево или вправо.

Для всех товаров

Сначала убедитесь, что вы вносите изменения в дочернюю тему.

Это позволит вам настраивать содержимое без риска потерять изменения после обновления. Подробнее о настройке дочерней темы читайте здесь: https://support.wpshop.ru/docs/general/child-themes/.

В дочерней теме откройте файл functions.php и добавьте следующий сниппет:

add_action( 'woocommerce_single_product_summary', 'wc_ninja_add_brand_to_product_page', 19 );
function wc_ninja_add_brand_to_product_page() {
    echo do_shortcode('[product_brand width="64px" height="64px" class="alignright"]');
}

Этот сниппет также можно добавить с помощью плагина, например Code Snippets.

В результате вы получите следующее расположение логотипа: он будет отображаться на всех страницах товаров и автоматически меняться в зависимости от бренда.

Result
Размещено в файле short-description.php.

Добавление названия бренда на страницу товара

По умолчанию добавить название бренда на страницу товара без пользовательского кода нельзя. Приведенный ниже сниппет можно использовать для вывода названия бренда.

Сначала убедитесь, что вы вносите изменения в дочернюю тему.

Это позволит вам настраивать содержимое без риска потерять изменения после обновления. Подробнее о настройке дочерней темы читайте здесь: https://support.wpshop.ru/docs/general/child-themes/.

В дочерней теме откройте файл functions.php и добавьте следующий сниппет:

<?php

/*
 * Увеличьте `1` в строке 7, чтобы изменить позицию названия бренда
 */

add_action( 'woocommerce_single_product_summary', 'wc_brands_add_brand_name', 1 );

function wc_brands_add_brand_name() {
    global $product;
    $brands = implode(', ', wp_get_post_terms($product->get_id(), 'product_brand', ['fields' => 'names']));
    echo "<p>Бренд: " . $brands . "</p>";
}

Этот сниппет также можно добавить с помощью плагина, например Code Snippets.

Виджеты

Чтобы узнать больше о том, как добавить перечисленные ниже виджеты брендов на ваш сайт, ознакомьтесь со статьей Виджеты WooCommerce.

Описание бренда

Этот виджет выводит описание текущего просматриваемого архива бренда.

WooCommerce Brand Description

Этот виджет предоставляет многослойную навигацию для товаров по брендам. Он работает совместно с другими виджетами многослойной навигации WooCommerce и может использоваться вместе с ними.

WooCommerce Brands Layered Nav Widget

Миниатюры брендов

Этот виджет выводит список брендов с миниатюрами.

WooCommerce Brand Thumbnails

Поддержка REST API

Начиная с версии 1.5+ поддерживается REST API.

REST API брендов

REST API брендов позволяет создавать, просматривать, обновлять и удалять как отдельные бренды, так и наборы брендов. Конечная точка: /wp-json/wc/v1/products/brands, и по своей логике она повторяет /wp-json/wc/v1/products/categories. Можно ориентироваться на ту же документацию по REST API категорий товаров.

Помимо эндпоинтов /products/brands, эндпоинты /products также были обновлены: теперь они возвращают brands в ответе и проверяют поле brands в JSON-запросе.

Примеры

  • Получить все бренды товаров: curl https://example.com/wp-json/wc/v2/products/brands -u consumer_key:consumer_secret
  • Создать бренд товара: curl -X POST https://example.com/wp-json/wc/v2/products/brands -u consumer_key:consumer_secret -H "Content-Type: application/json" -d '{ "name": "Apple", "image": { "src": "https://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Apple_logo_black.svg/768px-Apple_logo_black.svg.png" } }'
  • Удалить бренд товара: curl -X DELETE https://example.com/wp-json/wc/v2/products/brands/9?force=true -u consumer_key:consumer_secret
  • Назначить бренды товару: curl -X PUT https://example.com/wp-json/wc/v2/products/123 -u consumer_key:consumer_secret -H 'Content-Type: application/json' -d '{"brands": [48, 49]}' Примечание: при назначении бренда товару URL должен быть вида products/123, где 123 — это ID товара, который вы хотите обновить.

Часто задаваемые вопросы

Как вывести бренды товара в URL страницы товара?

Чтобы вывести бренд товара в URL товара, перейдите в Настройки > Постоянные ссылки и добавьте %product_brand% в поле Постоянная ссылка на товар. Обратите внимание: для %product_brand% в качестве базы требуется shop, например: /shop/%product_brand%.

Как импортировать информацию о брендах из CSV-файла?

Встроенная в WooCommerce функция импорта/экспорта товаров пока не обладает всеми возможностями расширения Product CSV Import Suite, поскольку в стандартном варианте она работает только с полями по умолчанию и метаполями, а бренды хранятся в таксономиях.

Поэтому для этой задачи подходит Product CSV Import Suite. В CSV-файл нужно добавить столбец с заголовком tax:product_brand и указать в нем названия брендов, чтобы информация о брендах была связана с товарами.

Работает ли WooCommerce Brands с Google Listings & Ads?

Да. Когда установлен плагин WooCommerce Brands, на странице редактирования товара во вкладке Google Listings and Ads появляется новая опция для атрибута бренда. После этого для каждого товара можно выбрать значение атрибута бренда From WooCommerce Brands:

Бренды товаров

Фрагменты кода

Как отсортировать бренды на сайте так же, как они отсортированы в панели администратора?

Добавьте в файл functions.php вашей темы следующий код:

add_filter( 'woocommerce_sortable_taxonomies','wt_sort_brands' );
function wt_sort_brands( $sortable ) {
    $sortable[] = 'product_brand';
    return $sortable;
}

После этого миниатюры брендов будут выводиться в том же порядке, в котором они расположены в административной части сайта.

Как изменить slug архивов брендов?

У каждого бренда есть собственный архив, доступный по адресу вида http://domain.com/brand/brand-slug/. Часть brand в этой структуре URL можно изменить, добавив следующий сниппет в файл functions.php вашей темы или в плагин с пользовательской функциональностью:

function customise_product_brand_slug( $tax ) {
    $tax['rewrite']['slug'] = 'custom-slug'; // Замените 'custom-slug' на нужный вам slug.
    return $tax;
}
add_filter( 'register_taxonomy_product_brand', 'customise_product_brand_slug' );

После добавления этого кода перейдите в Настройки > Постоянные ссылки и повторно сохраните настройки. Это обновит постоянные ссылки и применит новый slug бренда.

Как сделать хлебные крошки брендов ссылками?

В следующем сниппете нужно указать ID страницы, которая будет использоваться как родительская страница брендов. В примере используется страница с ID 14, но вам нужно заменить это значение на свое. Добавьте код в файл functions.php дочерней темы или в ваш плагин с пользовательской функциональностью:

function wc_custom_brands_breadcrumb( $crumbs, $breadcrumb ){

   // ID страницы, которая будет использоваться как верхний архив брендов
   $page_url = get_the_permalink(14);

   foreach( $crumbs as $key => $crumb ){
      if( $crumb[0] === __('Brands') ) {
         // Если вы изменили slug с помощью сниппета выше,
         // в хлебных крошках все равно будет отображаться Brand, поэтому
         // замените 'Name' ниже на нужный вам текст для хлебных крошек.
         // Иначе просто удалите следующую строку кода полностью.
         $crumbs[$key][0] = __( 'Name', 'woocommerce' );
         $crumbs[$key][1] = $page_url;
      }
   }

   return $crumbs;
}
add_filter( 'woocommerce_get_breadcrumb', 'wc_custom_brands_breadcrumb', 20, 2 );

Добавление брендов в цикл товаров на странице магазина и в архивах товаров

<?php
if ( is_plugin_active( 'woocommerce-brands/woocommerce-brands.php' ) ) {

    add_action( 'woocommerce_shop_loop_item_title', 'add_brands_to_product_loop' );

    // Добавляем бренды в цикл товаров.
    function add_brands_to_product_loop() {
        $terms = get_the_terms( get_the_ID(), 'product_brand' );
        if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
            $term = join( ', ', wp_list_pluck( $terms, 'name' ) );
            echo esc_html( $term );
        }
    }
}
После добавления сниппета бренды отображаются в цикле под названием товара.

Поделиться с друзьями
Документация WooCommerce