Шорткоды WooCommerce

Содержание
  1. Как использовать шорткоды
  2. Где использовать
  3. Аргументы
  4. Шорткоды страниц
  5. Cart
  6. Checkout
  7. My Account
  8. Order Tracking Form
  9. Products
  10. Доступные атрибуты товаров
  11. Отображение атрибутов товара
  12. Атрибуты содержимого товара
  13. Специальные атрибуты товара
  14. Примеры
  15. Пример 1. Случайные товары на распродаже
  16. Пример 2. Популярные товары
  17. Пример 3. Самые продаваемые товары
  18. Пример 4. Самые новые товары
  19. Пример 5. Конкретные категории
  20. Пример 6. Отображение атрибутов
  21. Пример 7. Показать только товары с тегом hoodie
  22. Сортировка товаров по пользовательским мета-полям
  23. Категория товара
  24. Доступные атрибуты категорий товаров
  25. Примеры шорткодов категорий продуктов
  26. Пример 8. Показывать только категории верхнего уровня
  27. Страница продукта
  28. Сопутствующие товары
  29. Аргумент limit
  30. Добавление в корзину
  31. URL для добавления в корзину
  32. Отображение уведомлений WooCommerce на страницах, которые не являются WooCommerce
  33. Устранение неполадок с шорткодами
  34. SKU вариативного товара не отображается

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

Как использовать шорткоды

Где использовать

Шорткоды можно использовать на страницах и в постах WordPress. Для нового редактора WordPress есть отдельный блок Шорткод.

Шорткоды WooCommerce

Если вы используете классический редактор, вы можете вставить шорткод на страницу или в пост

Аргументы

В некоторых из приведенных ниже шорткодов используются аргументы. Используются, чтобы сделать шорткод более конкретным. Например, добавив id=»99″ к шорткоду [add_to_cart], вы создадите кнопку добавления в корзину для товара с ID 99.

Шорткоды страниц

WooCommerce не сможет нормально функционировать без наличия на вашем сайте первых трех шорткодов.

  • [woocommerce_cart] — показывает страницу корзины
  • [woocommerce_checkout] — показывает страницу оформления заказа
  • [woocommerce_my_account] — показывает страницу учетной записи пользователя
  • [woocommerce_order_tracking] — показывает форму отслеживания заказа.

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

Cart

Используется на странице корзины. Отображает содержимое корзины и интерфейс для кодов купонов и других элементов корзины.

Аргументы: нет

[woocommerce_cart]

Checkout

Используется на странице оформления заказа. Отображает процесс оформления заказа.

Аргументы: нет

[woocommerce_checkout]

My Account

Показывает раздел «Мой аккаунт», где клиент может просмотреть прошлые заказы и обновить свою информацию. Вы можете указать количество заказов для отображения. По умолчанию установлено значение 15 (используйте -1 для отображения всех заказов).

Аргументы:

array(
     'current_user' => ''
 )
[woocommerce_my_account]

Аргумент текущего пользователя автоматически устанавливается с помощью get_user_by( 'id', get_current_user_id() ).

Order Tracking Form

Позволяет пользователю увидеть статус заказа, введя данные о заказе.

Аргументы: нет

[woocommerce_order_tracking]

Products

Шорткод [products] является одним из наших самых унниверсальных шорткодов, который может заменить различные другие, используемые в более ранних версиях WooCommerce.

Позволяет отображать товары по ID поста, SKU, категориям, атрибутам, с поддержкой пагинации, произвольной сортировки и тегов товаров, заменяя необходимость использования нескольких шорткодов, таких как [featured_products], [sale_products], [best_selling_products], [recent_products], [product_attribute] и [top_rated_products], которые необходимы в версиях WooCommerce ниже 3.2. Рассмотрите приведенные ниже примеры.

Доступные атрибуты товаров

Следующие атрибуты доступны для использования в сочетании с шорткодом [products]. Для удобства навигации они были разделены на разделы по основным функциям, примеры которых приведены ниже.

Отображение атрибутов товара

  • limit — количество товаров для отображения. По умолчанию имеет значение и -1 (отображать все) при отображении товаров, и -1 (отображать все) для категорий.
  • columns — количество колонок для отображения. По умолчанию равно 4.
  • paginate — включает постраничное отображение. Используется в сочетании с limit. По умолчанию false, установите значение true для включения постраничной сортировки.
  • orderby — сортирует отображаемые товары по введенному параметру. Можно передать один или несколько вариантов, добавив оба слова с пробелом между ними. Доступны следующие параметры:
      • date — дата публикации товара,
      • id — идентификатор поста товара,
      • menu_order — порядок меню, если установлен (нижние номера отображаются первыми,\
      • popularity — количество покупок,
      • rand — случайный порядок товаров при загрузке страницы (может не работать на сайтах, использующих кэширование, так как может сохранить определенный порядок),
      • rating — cредний рейтинг товара,
      • title — название товара. Это режим упорядочивания по умолчанию.
  • skus — список SKU товара, разделенный запятыми.
  • category — список категорий, разделенный запятыми.
  • tag — список фрагментов тегов, разделенных запятыми.
  • order — указывает, будет ли порядок товаров возрастающим (ASC) или убывающим (DESC), используя метод, установленный в orderby. По умолчанию установлено значение ASC.
  • class — добавляет класс HTML-обертки, чтобы вы могли изменить конкретный вывод с помощью пользовательского CSS.
  • on_sale — получить товары, находящиеся в продаже. Не используется в сочетании с best_selling или top_rated.
  • best_selling — получить самые продаваемые товары. Не использовать в сочетании с on_sale или top_rated.
  • top_rated — получить продукты с наивысшим рейтингом. Не использовать в сочетании с on_sale или best_selling.

Атрибуты содержимого товара

  • attribute — извлекает товары, использующие указанный атрибут slug.
  • terms — список терминов атрибута, разделенных запятыми, для использования с attribute.
  • terms_operator — оператор для сравнения терминов атрибута. Доступны следующие варианты:
      • AND — отображает товары из всех выбранных атрибутов.
      • IN — будет отображать товары с выбранным атрибутом. Это значение terms_operator по умолчанию.
      • NOT IN — отображаются товары, которые не входят в выбранные атрибуты.
  • tag_operator — оператор для сравнения тегов. Доступны следующие варианты:
      • AND — будет отображать товары из всех выбранных тегов.
      • IN — будет отображать товары с выбранными тегами. Это значение tag_operator по умолчанию.
      • NOT IN — будет отображать товары , которые не входят в выбранные теги.
  • visibility — отображает товары на основе выбранной видимости. Доступны следующие варианты:
      • visible — товары видны в магазине и результатах поиска. Это вариант видимости по умолчанию.
      • catalog — товары видны только в магазине, но не в результатах поиска.
      • search — товары, видимые только в результатах поиска, но не в магазине.
      • hidden — товары, которые скрыты как в магазине, так и в поиске, и доступны только по прямому URL.
      • featured — товары, отмеченные как Популярные товары.
  • category — извлекает товары по указанному слогу категории.
  • tag — получает товары, использующие указанный тег.
  • cat_operator — оператор для сравнения терминов категории. Доступны следующие варианты:
      • AND — отображает товары, принадлежащие всем выбранным категориям.
      • IN — отображает товары в выбранной категории. Это значение cat_operator по умолчанию.
      • NOT IN — отображает товары, которые не входят в выбранную категорию.
  • ids — отображает товары на основе списка идентификаторов постов, разделенных запятыми.
  • skus — отображает товары на основе списка SKU, разделенного запятыми.

Если товар не отображается, убедитесь, что для него не установлено значение Скрытый в параметре Видимость каталога.

Чтобы найти ID товара, перейдите на экран товаров, наведите курсор на товар, и ID появится, как показано ниже.

Шорткоды WooCommerce

Специальные атрибуты товара

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

  • best_selling — отображает самые продаваемые товары. Должно быть установлено значение true.
  • on_sale — отображает товары, находящиеся в продаже. Должно быть установлено значение true.

Примеры

Пример 1. Случайные товары на распродаже

Я хочу отобразить четыре случайных товара на распродаже.

[products limit="4" columns="4" orderby="popularity" class="quick-sale" on_sale="true"]

Этот шорткод выводит четыре товара с четырьмя колонками (которые будут одной строкой), показывая самые популярные товары на распродаже. Он также добавляет CSS-класс quick-sale, который можно изменить в своей теме.

Шорткоды WooCommerce

Пример 2. Популярные товары

Я хочу отобразить мои основные товары, по два в строке, с максимальным количеством в четыре позиции.

[products limit="4" columns="2" visibility="featured"]

Этот шорткод указывает, что до четырех товаров будут загружаться в две колонки. Хотя это не указано явно, он использует настройки по умолчанию, такие как сортировка по названию (от А до Я).

Шорткоды WooCommerce

Пример 3. Самые продаваемые товары

Я хочу отобразить три самых продаваемых продукта в одной строке.

[products limit="3" columns="3" best_selling="true"]

Шорткоды WooCommerce

Пример 4. Самые новые товары

Я хочу отобразить сначала самые новые продукты — четыре продукта в одной строке. Для этого мы будем использовать ID поста (который генерируется при создании страницы продукта), а также команды order и orderby.

[products limit="4" columns="4" orderby="id" order="DESC" visibility="visible"]

Шорткоды WooCommerce

Пример 5. Конкретные категории

Я хочу отображать только толстовки и футболки, но не аксессуары. Я использую две колонки из четырех.

[products limit="8" columns="4" category="hoodies, tshirts" cat_operator="AND"]

В качестве альтернативы я хочу отображать только товары, не относящиеся к этим категориям. Все, что мне нужно, это изменить оператор cat_operator на NOT IN.

[products limit="8" columns="4" category="hoodies, tshirts" cat_operator="NOT IN"]

Шорткоды WooCommerce

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

Пример 6. Отображение атрибутов

Каждый предмет одежды имеет атрибут, либо «весна/лето», либо «осень/зима» в зависимости от соответствующего сезона, а некоторые аксессуары имеют оба атрибута, поскольку их можно носить круглый год. В данном примере я хочу, чтобы в каждом ряду отображалось по 3 товара, причем все товары «весна/лето». Атрибут slug — сезон, а атрибуты — warm и cold. Я также хочу, чтобы они были отсортированы от самых новых продуктов к самым старым.

[products columns="3" attribute="season" terms="warm" orderby="date"]

В качестве альтернативы, если бы я хотел отображать исключительно товары для холодной погоды, я мог бы добавить NOT IN в качестве оператора terms_operator:

[products columns="3" attribute="season" terms="warm" terms_operator="NOT IN"]

Обратите внимание, что, используя NOT IN, я исключаю продукты, которые относятся к категориям «весна/лето» и «осень/зима». Если бы я хотел показать все товары, подходящие для холодной погоды, включая эти общие аксессуары, я бы изменил термин с warm на cold.

Пример 7. Показать только товары с тегом hoodie

[products tag="hoodie"]

Сортировка товаров по пользовательским мета-полям

При использовании шорткода [products] вы можете выбрать порядок товаров по предварительно определенным значениям, указанным выше. Вы также можете сортировать товары по пользовательским мета-полям, используя код ниже (в данном примере мы упорядочиваем товары по цене):

add_filter( 'woocommerce_shortcode_products_query', 'woocommerce_shortcode_products_orderby' );

function woocommerce_shortcode_products_orderby( $args ) {

    $standard_array = array('menu_order','title','date','rand','id');

    if( isset( $args['orderby'] ) && !in_array( $args['orderby'], $standard_array ) ) {
        $args['meta_key'] = $args['orderby'];
        $args['orderby']  = 'meta_value_num'; 
    }

    return $args;
}

Вам нужно поместить этот сниппет в functions.php, а затем настроить его, отредактировав meta_key.

Категория товара

Эти два шорткода отображают категории ваших товаров на любой странице.

  • [product_category] — отображает товары в указанной категории.
  • [product_categories] — отображает все категории ваших товаров.

Доступные атрибуты категорий товаров

  • ids — укажите конкретные идентификаторы категорий, которые будут перечислены. Используется в [product_categories].
  • category — может быть либо идентификатором категории, либо названием, либо slug. Используется в [product_category].
  • limit — количество категорий для отображения.
  • columns — количество колонок для отображения. По умолчанию 4.
  • hide_empty — по умолчанию установлено значение 1, которое будет скрывать пустые категории. Установите значение 0, чтобы показать пустые категории.
  • parent — установите значение ID определенной категории, если вы хотите отобразить все дочерние категории. Или же установите значение 0 (как в примере ниже), чтобы показать только категории верхнего уровня.
  • orderby — по умолчанию используется порядок по name, может быть установлено значение id, slug или menu_order. Если вы хотите упорядочить по указанным вами идентификаторам, используйте orderby=»include».
  • order — указывает, будет ли порядок категорий возрастающим (ASC) или убывающим (DESC), используя метод, заданный в orderby. По умолчанию используется ASC.

Примеры шорткодов категорий продуктов

Пример 8. Показывать только категории верхнего уровня

Представьте, что вы хотите показать на странице только категории верхнего уровня и исключить подкатегории, это возможно с помощью следующего шорткода.

[product_categories number="0" parent="0"]

Шорткоды WooCommerce

Страница продукта

Показать полностью страницу одного продукта по ID или SKU.

[product_page id="99"]

[product_page sku="FOO"]

Сопутствующие товары

Список сопутствующих товаров.

Аргументы:

array(
    'limit' => '12',
    'columns' => '4',
    'orderby' => 'title'
)

[related_products limit="12"]

Аргумент limit

Аргумент шорткода limit будет определять, сколько товаров будет показано на странице. Это не добавит пагинацию в шорткод.

Добавление в корзину

Показать цену и кнопку добавления в корзину одного товара по ID.

Аргументы:

array(
    'id' => '99',
    'style' => 'border:4px solid #ccc; padding: 12px;',
    'sku' => 'FOO'
    'show_price' => 'TRUE'
    'class' => 'CSS-CLASS'
    'quantity' => '1';
)

[add_to_cart id="99"]

URL для добавления в корзину

Отображение URL на кнопке добавления в корзину одного товара по ID.

Аргументы:

array(
    'id' => '99',
    'sku' => 'FOO'
)

[add_to_cart_url id="99"]

Отображение уведомлений WooCommerce на страницах, которые не являются WooCommerce

[shop_messages] позволяет показывать уведомления WooCommerce (например, «Товар был добавлен в корзину») на страницах, не относящихся к WooCommerce. Полезно, когда вы используете другие шорткоды, например [add_to_cart], и хотите, чтобы пользователи получали обратную связь о своих действиях.

Устранение неполадок с шорткодами

Если вы правильно вставили шорткоды, но отображение выглядит некорректно, убедитесь, что вы не вставили шорткод между тегами <pre>. Это распространенная проблема. Чтобы удалить эти теги, отредактируйте страницу и перейдите на вкладку Текст:

Шорткоды WooCommerce

Другая распространенная проблема заключается в том, что прямые кавычки («) отображаются как фигурные кавычки (). Чтобы шорткоды работали правильно, нужны прямые кавычки.

SKU вариативного товара не отображается

Что касается использования шорткода SKU типа [products skus=»sku-name»], SKU вариативного товара не предназначен для отображения сам по себе, в отличие от SKU родительского вариативного товара. Поэтому ожидается, что если мы используем SKU из Данные товара > Вариативный товар > Вариации > Название вариации > Артикул (SKU), он не будет отображаться.

Однако если мы используем SKU из родительского вариативного товара, он будет отображаться.

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