Как вывести всю основную информацию о товаре WooCommerce

WooCommerceВопросы и ответыУчебник по WordPress
ВОПРОС
Всем доброго времени суток. У меня есть свой интернет-магазин, который работает с использованием небезызвестного расширения. В общем, мне нужно, чтобы некоторые данные о продукте передавались третьей стороне. Если конкретно, то необходимо передать название товара, цену и количество. У вас есть идеи, как это можно сделать то, что мне требуется?
ОТВЕТ
Привет. Я знаю пару способов, как ты можешь реализовать то, о чем ты просишь. В общем, привожу тебе два примера. Первый пример просто выводит то, что ты запрашивал, а со вторым отобразится цена со скидкой и без нее, а также изображение.
Не буду долго распинаться, вот первый код:
<?php
global $woocommerce;
$items = $woocommerce->cart->get_cart();
Вот второй метод, который я описывал выше:
<?php
global $woocommerce;
$items = $woocommerce->cart->get_cart();
foreach($items as $item => $values) <
$_product = wc_get_product( $values[‘data’]->get_id() );
//product image
$getProductDetail = wc_get_product( $values[‘product_id’] );
echo $getProductDetail->get_image(); // accepts 2 arguments ( size, attr )
Получить название продукта и описание в шаблонах электронной почты WooCommerce
Я пытаюсь получить описание продукта и название продукта, когда электронная почта отправляется в шаблонах электронной почты WooCommerce.
Я могу получить идентификатор продукта $order_id = trim(str_replace(‘#’, », $order->get_items())); используя этот код
Но когда я пытаюсь получить его описание и название продукта, я не могу сделать то же самое.
Как я могу заставить это работать?
Я добавил это в function.php, что я пытаюсь сделать, это после того, как заказ установлен, я пытаюсь отправить смс пользователю, но когда я установил его как завершенный, это дает ошибку 500
Решение
Для этого вам нужно немного изменить свой код.
Также я не уверен, что вам нужно получить $order объект и идентификатор заказа в качестве $order объект уже существует
Так что вы можете попробовать сначала без $order = new WC_Order($order_id); (или же $order = wc_get_order( $order_id ); ) в начале кода. Если это не работает без, вы просто добавите его снова.
Этот код протестирован и работает.
Код помещается в файл function.php вашей активной дочерней темы (или темы). Или также в любом файле плагина php.
Другие решения
Привет, так что полный код должен быть вставлен?
Кроме того, что следует изменить, чтобы отправить это для действия обработки вместо status_comleted?
Шорткоды WooCommerce
WooCommerce поставляется с шорткодами, которые можно использовать для вставки содержимого внутри постов и страниц.
Как использовать шорткоды
Где использовать
Шорткоды можно использовать на страницах и в постах WordPress. Для нового редактора WordPress есть отдельный блок Шорткод.

Если вы используете классический редактор, вы можете вставить шорткод на страницу или в пост
Аргументы
В некоторых из приведенных ниже шорткодов используются аргументы. Используются, чтобы сделать шорткод более конкретным. Например, добавив id=»99″ к шорткоду [add_to_cart], вы создадите кнопку добавления в корзину для товара с ID 99.
Шорткоды страниц
WooCommerce не сможет нормально функционировать без наличия на вашем сайте первых трех шорткодов.
- [woocommerce_cart] — показывает страницу корзины
- [woocommerce_checkout] — показывает страницу оформления заказа
- [woocommerce_my_account] — показывает страницу учетной записи пользователя
- [woocommerce_order_tracking] — показывает форму отслеживания заказа.
В большинстве случаев эти шорткоды будут добавлены на страницы автоматически с помощью нашего мастера настройки и не требуют ручного использования.
Используется на странице корзины. Отображает содержимое корзины и интерфейс для кодов купонов и других элементов корзины.
Checkout
Используется на странице оформления заказа. Отображает процесс оформления заказа.
My Account
Показывает раздел «Мой аккаунт», где клиент может просмотреть прошлые заказы и обновить свою информацию. Вы можете указать количество заказов для отображения. По умолчанию установлено значение 15 (используйте -1 для отображения всех заказов).
Аргумент текущего пользователя автоматически устанавливается с помощью get_user_by( ‘id’, get_current_user_id() ) .
Order Tracking Form
Позволяет пользователю увидеть статус заказа, введя данные о заказе.
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 — название товара. Это режим упорядочивания по умолчанию.
Атрибуты содержимого товара
- attribute — извлекает товары, использующие указанный атрибут slug.
- terms — список терминов атрибута, разделенных запятыми, для использования с attribute.
- terms_operator — оператор для сравнения терминов атрибута. Доступны следующие варианты:
-
- AND — отображает товары из всех выбранных атрибутов.
- IN — будет отображать товары с выбранным атрибутом. Это значение terms_operator по умолчанию.
- NOT IN — отображаются товары, которые не входят в выбранные атрибуты.
-
- AND — будет отображать товары из всех выбранных тегов.
- IN — будет отображать товары с выбранными тегами. Это значение tag_operator по умолчанию.
- NOT IN — будет отображать товары , которые не входят в выбранные теги.
-
- visible — товары видны в магазине и результатах поиска. Это вариант видимости по умолчанию.
- catalog — товары видны только в магазине, но не в результатах поиска.
- search — товары, видимые только в результатах поиска, но не в магазине.
- hidden — товары, которые скрыты как в магазине, так и в поиске, и доступны только по прямому URL.
- featured — товары, отмеченные как Популярные товары.
-
- AND — отображает товары, принадлежащие всем выбранным категориям.
- IN — отображает товары в выбранной категории. Это значение cat_operator по умолчанию.
- NOT IN — отображает товары, которые не входят в выбранную категорию.
Если товар не отображается, убедитесь, что для него не установлено значение Скрытый в параметре Видимость каталога.
Чтобы найти ID товара, перейдите на экран товаров, наведите курсор на товар, и ID появится, как показано ниже.

Специальные атрибуты товара
Эти атрибуты нельзя использовать с перечисленными выше атрибутами содержимого, так как они могут вызвать конфликт и не отображаться. Вы должны использовать только один из следующих специальных атрибутов.
- best_selling — отображает самые продаваемые товары. Должно быть установлено значение true.
- on_sale — отображает товары, находящиеся в продаже. Должно быть установлено значение true.
Примеры
Пример 1. Случайные товары на распродаже
Я хочу отобразить четыре случайных товара на распродаже.
Этот шорткод выводит четыре товара с четырьмя колонками (которые будут одной строкой), показывая самые популярные товары на распродаже. Он также добавляет CSS-класс quick-sale, который можно изменить в своей теме.

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

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

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

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

Обратите внимание, что, хотя ограничение установлено на 8, есть только четыре продукта, которые соответствуют этим критериям, поэтому отображаются четыре продукта.
Пример 6. Отображение атрибутов
Каждый предмет одежды имеет атрибут, либо «весна/лето», либо «осень/зима» в зависимости от соответствующего сезона, а некоторые аксессуары имеют оба атрибута, поскольку их можно носить круглый год. В данном примере я хочу, чтобы в каждом ряду отображалось по 3 товара, причем все товары «весна/лето». Атрибут slug — сезон, а атрибуты — warm и cold. Я также хочу, чтобы они были отсортированы от самых новых продуктов к самым старым.
В качестве альтернативы, если бы я хотел отображать исключительно товары для холодной погоды, я мог бы добавить NOT IN в качестве оператора terms_operator:
Обратите внимание, что, используя NOT IN, я исключаю продукты, которые относятся к категориям «весна/лето» и «осень/зима». Если бы я хотел показать все товары, подходящие для холодной погоды, включая эти общие аксессуары, я бы изменил термин с warm на cold.
Пример 7. Показать только товары с тегом hoodie
Сортировка товаров по пользовательским мета-полям
При использовании шорткода [products] вы можете выбрать порядок товаров по предварительно определенным значениям, указанным выше. Вы также можете сортировать товары по пользовательским мета-полям, используя код ниже (в данном примере мы упорядочиваем товары по цене):
Вам нужно поместить этот сниппет в 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. Показывать только категории верхнего уровня
Представьте, что вы хотите показать на странице только категории верхнего уровня и исключить подкатегории, это возможно с помощью следующего шорткода.

Страница продукта
Показать полностью страницу одного продукта по ID или SKU.
Сопутствующие товары
Список сопутствующих товаров.
Аргумент limit
Аргумент шорткода limit будет определять, сколько товаров будет показано на странице. Это не добавит пагинацию в шорткод.
Добавление в корзину
Показать цену и кнопку добавления в корзину одного товара по ID.
URL для добавления в корзину
Отображение URL на кнопке добавления в корзину одного товара по ID.
Отображение уведомлений WooCommerce на страницах, которые не являются WooCommerce
[shop_messages] позволяет показывать уведомления WooCommerce (например, «Товар был добавлен в корзину») на страницах, не относящихся к WooCommerce. Полезно, когда вы используете другие шорткоды, например [add_to_cart], и хотите, чтобы пользователи получали обратную связь о своих действиях.
Устранение неполадок с шорткодами
Если вы правильно вставили шорткоды, но отображение выглядит некорректно, убедитесь, что вы не вставили шорткод между тегами <pre>. Это распространенная проблема. Чтобы удалить эти теги, отредактируйте страницу и перейдите на вкладку Текст:

Другая распространенная проблема заключается в том, что прямые кавычки («) отображаются как фигурные кавычки (“). Чтобы шорткоды работали правильно, нужны прямые кавычки.
SKU вариативного товара не отображается
Что касается использования шорткода SKU типа [products skus=»sku-name»], SKU вариативного товара не предназначен для отображения сам по себе, в отличие от SKU родительского вариативного товара. Поэтому ожидается, что если мы используем SKU из Данные товара > Вариативный товар > Вариации > Название вариации > Артикул (SKU), он не будет отображаться.
Однако если мы используем SKU из родительского вариативного товара, он будет отображаться.
Полезные заметки по WooCommerce, разбираем на молекулы
WooCommerce весьма хороший инструмент для создания интернет-магазина на базе WordPress, однако работа с ним иногда вызывает вопросы. Порой найти решение простой задачи, например, вывести банальный артикул в карточке товара у некоторых вызывают вопросы. Я собрал минимальный набор самых простых заметок, с которыми и делюсь с вами, в процессе статья будет разрастаться. Новые заметки будут обозначены меткой UPD (update).
Заметка #1
Вывести описание текущей категории WooCommerce.
Заметка #2
Вывести миниатюру текущей категории WooCommerce.
Заметка #3
Вывести список подкатегорий текущей категории WooCommerce, в которой мы находимся. Код выводит только те категории, в которых есть хотя бы 1 товар, категории без товаров не выводятся.
Заметка #4
Вывести заголовок страницы WooCommerce, скрыть его, если заголовка у страницы нет.
Заметка #5
Вывести значение атрибута товара WooCommerce, зная его slug name.
Заметка #6
Вывести все атрибуты товара WooCommerce.
Заметка #7
Вывести краткое описание товара. Краткое описание товара указывается в админке, при редактировании товара.
Заметка #8
Вывести кнопку «Добавить в корзину», которая будет добавлять одну единицу текущего товара в корзину.
Заметка #9
Вывести артикул товара WooCommerce.
Заметка #10
Вывести стоимость текущего товара WooCommerce.
Заметка #11
В карточке товара вывести похожие товары WooCommerce из этой же категории.
Пояснение: Вывод происходит шорткодом, вы можете указать количество выводимых товаров. Переопределить шаблон вывода товаров нужно в шаблоне /woocommerce/content-related.php
Заметка #12
В результатах поиска отображаем только товары из магазина.
Добавляем в functions.php темы:
Заметка #13
Выводим иконку корзины и счетчик товаров в ней, работает на AJAX
В файл functions.php добавляем:
На место, где нужно вывести корзину и счётчик товаров в корзине добавляем:
Заметка #14
Выводим знак текущей выбранной валюты магазина.
Заметка #15
Выводим статус остатка «Есть в наличии», «Нет в наличии»
Данная статья в процессе будет разрастаться, если у Вас есть, чем поделиться — пишите в комментариях, буду добавлять заметки по WooCommerce сюда.
Если Вам требуется разработка уникального интернет-магазина на WooCommerce, обращайтесь ко мне. Буду рад создать для Вас уникальный, продающий и функциональный интернет-магазин.
-
-