WooCommerce — как получить идентификатор продукта, артикул и цену из объекта $product?
Опубликовано: 2022-09-15Как получить идентификатор продукта? Как получить артикул товара? Или как получить цену продукта, акции, цену продажи, обычную цену, класс доставки, налоговый класс, изображения, размеры, атрибуты, категории и многое другое?
Если вы технарь, я сформулирую это так: «Как получить ____, если у меня есть объект/переменная $product?»
Выбор продуктов, которые присутствовали в заказе, применение расширенных фильтров продуктов, редактирование цен и описания… вам нужны сведения о продуктах для выполнения различных операций в магазине.
В этой статье перечислены некоторые коды, которые вы можете использовать для получения продукта по идентификатору, продукту по категории, продукту по цене, продукту и другим сведениям в WooCommerce, чтобы отметить свои задачи управления запасами.
А также, как вы можете получать и управлять всеми сведениями о своих продуктах, заказами, купонами, любым пользовательским типом сообщений WordPress из одного места, тем самым увеличивая производительность вашего магазина в 10 раз.
Итак, начнем.
Получение информации о продукте из объекта $product с помощью кода
Не всегда у вас есть доступ к объекту $product (например, я говорю о хуках WooCommerce). Разберитесь в своем случае и посмотрите, можете ли вы «получить» этот объект $product другим способом.
В этом случае вам нужно найти способ «получить объект $product из $product_id».
Другими примерами могут быть страница заказа или страница корзины. Здесь у вас действительно нет доступного товара $, поэтому вам нужно пройтись по элементам заказа/корзины и «получить» его. После этого вы можете рассчитать и получить любую необходимую информацию из $product.
У вас есть доступ к переменной $product
Хуки (do_action и apply_filters) используют дополнительные аргументы, которые передаются функции. Если они позволяют вам использовать объект «$product», это здорово. В качестве альтернативы вы можете объявить «глобальный продукт $» внутри своей функции.
В обоих случаях вы получаете всю информацию о продукте следующим образом:
// Получить идентификатор продукта
$продукт->get_id();
// Получить общую информацию о продукте
$продукт->get_type();
$продукт->get_name();
$продукт->get_slug();
$продукт->get_date_created();
$продукт->get_date_modified();
$продукт->get_status();
$продукт->get_featured();
$product->get_catalog_visibility();
$продукт->get_description();
$product->get_short_description();
$продукт->get_sku();
$продукт->get_menu_order();
$продукт->get_virtual();
get_permalink($product->get_id());
// Получить цены на товары
$продукт->получить_цену();
$продукт->get_regular_price();
$продукт->get_sale_price();
$product->get_date_on_sale_from();
$product->get_date_on_sale_to();
$продукт->get_total_sales();
// Получить налог на продукт, доставку и запасы
$product->get_tax_status();
$product->get_tax_class();
$продукт->get_manage_stock();
$product->get_stock_quantity();
$продукт->get_stock_status();
$продукт->get_backorders();
$product->get_sold_individually();
$продукт->get_purchase_note();
$product->get_shipping_class_id();
// Получить параметры продукта
$продукт->get_weight();
$продукт->get_length();
$продукт->get_width();
$продукт->get_height();
$продукт->get_dimensions();
// Получить связанные продукты
$product->get_upsell_ids();
$product->get_cross_sell_ids();
$продукт->get_parent_id();
// Получить варианты и атрибуты продукта
$продукт->get_children(); // получаем варианты
$продукт->get_attributes();
$product->get_default_attributes();
$product->get_attribute('attributeid'); //получить конкретное значение атрибута
// Получить таксономию продуктов
$продукт->get_categories();
$product->get_category_ids();
$продукт->get_tag_ids();
// Получить загрузку продукта
$продукт->get_downloads();
$product->get_download_expiry();
$продукт->get_downloadable();
$продукт->get_download_limit();
// Получить изображения продукта
$продукт->get_image_id();
$продукт->get_image();
$product->get_gallery_image_ids();
// Получить обзоры продуктов
$product->get_reviews_allowed();
$product->get_rating_counts();
$product->get_average_rating();
$product->get_review_count();
У вас есть доступ к $product_id
Если у вас есть доступ к идентификатору продукта (опять же, обычно do_action или apply_filters делают это возможным), вы должны сначала получить объект продукта. Затем сделайте то же самое, что и выше.
// Получить объект $product из идентификатора продукта $продукт = wc_get_product($product_id); // Теперь у вас есть доступ к (см. выше)... $продукт->get_type(); $продукт->get_name(); // так далее. // так далее.
У вас есть доступ к объекту заказа или идентификатору заказа
Как получить информацию о товаре внутри Заказа? В этом случае вам нужно будет перебрать все элементы, присутствующие в заказе, а затем применить правила, указанные выше.

// Получить объект $product из $order / $order_id
$order = wc_get_order($order_id);
$items = $order->get_items();
foreach ( $items as $item ) {
$product = $item->get_product();
// Теперь у вас есть доступ к (см. выше)...
$продукт->get_type();
$продукт->get_name();
// так далее.
// так далее.
}
Также читайте — Как получить дополнительную информацию из объекта $order.
У вас есть доступ к объекту Корзина
Как получить информацию о товаре внутри корзины? В этом случае вам снова нужно будет пройтись по всем товарам, присутствующим в корзине, а затем применить приведенные выше правила. Если вы хотите расширить свои знания PHP в WooCommerce, вот еще одна статья о том, как получить дополнительную информацию из объекта $cart.
// Получить объект $product из объекта корзины
$cart = WC()->cart->get_cart();
foreach($cart as $cart_item_key => $cart_item){
$product = $cart_item['данные'];
// Теперь у вас есть доступ к (см. выше)...
$продукт->get_type();
$продукт->get_name();
// так далее.
// так далее.
}
Также читайте – Как получить дополнительную информацию из объекта $cart.
У вас есть доступ к объекту $post
В некоторых случаях (например, на стороне администратора WordPress или в бэкенде) вы можете получить доступ только к $post. Итак, как нам «вычислить» $product из $post? Очень просто:
// Получить объект $product из объекта $post $продукт = wc_get_product($post); // Теперь у вас есть доступ к (см. выше)... $продукт->get_type(); $продукт->get_name(); // так далее. // так далее.
Как получить весь товар/запас в одном месте?
Что, если вам нужна вся информация о вашем продукте, наличии, цене, дополнительной информации, артикуле… тонны информации в одном месте?
Не только просматривать, но и редактировать детали по мере необходимости, и это тоже массово?
Smart Manager делает это возможным для вас. Он показывает все данные о ваших продуктах на аккуратной панели инструментов.
Рекомендуемые изображения, обычная цена, цена со скидкой, дополнительная информация, SKU, категории, атрибуты… все легко доступно в электронной таблице, похожей на Excel. Управляйте, редактируйте продукты прямо с помощью электронной таблицы. Часы задач в течение минут или секунд.
Простые продукты, вариативные продукты и вариации, партнерские продукты … работает для всех.

Как лучше управлять запасами/запасами с помощью Smart Manager?
- Добавляйте любое количество новых товаров в свою базу данных.
- Включите или отключите «Управление запасами» для каждого продукта.
- Управляйте, редактируйте SKU, состояние запасов, обычную цену, цену продажи для каждого.
- Изменить описание продукта, налоговый статус.
- Добавьте налоговый статус, налоговый класс, класс доставки, изображения функций, миниатюры продуктов для каждого продукта. Добавляйте атрибуты, редактируйте категории и статус продукта.
- Увеличьте или уменьшите цену продажи на X% или сумму обычной цены для всех или выбранных акций
- Массовое редактирование состояния запасов, запасов и т. д.
- Установите цену продажи на основе обычной цены продукта, используя массовое редактирование.
- Выполняйте такие операции, как добавление, добавление, увеличение, уменьшение, установка, копирование и т. д. с помощью массового редактирования.
- Добавляйте атрибуты сразу к сотням продуктов, используя массовое редактирование
- Обновление запасов в режиме реального времени — количество запасов обновляется автоматически при совершении продажи.
- Управление отложенными заказами
- Отфильтруйте запасы по состоянию запасов, SKU, цене и т. д. Примените ИЛИ, И или комбинацию обоих условий, чтобы получить желаемые результаты среди тысяч товаров.
- Получите предопределенные пользовательские представления. Просматривайте только необходимые столбцы данных, связанные с запасами, и скрывайте все остальные столбцы, чтобы сосредоточиться только на показателях, связанных с запасами или запасами. Также сортируйте товары по наименованию, артикулу, цене и т. д. перед экспортом.
- Экспортируйте в формате CSV только те биржевые данные, которые вам нужны. Нравится название и количество на складе. Это позволит людям в вашем магазине или на складе знать, какой продукт нуждается в быстром пополнении, запасы какого товара медленно пополняются и т. д.
- Удаляйте отдельные акции, используя фильтры и массовое редактирование. Узнайте больше о том, как безопасно удалить все продукты.
- Управление биржевыми полями, добавленными пользовательскими плагинами
Smart Manager совместим с этими лучшими плагинами WooCommerce — подписками WooCommerce, бронированием, членством, дополнениями к продуктам, стоимостью товаров.
Вы можете легко управлять всеми полями запасов и продуктов, добавленными этими плагинами.
С такой легкостью, разве вы не чувствуете, что Smart Manager — лучший плагин для управления запасами WooCommerce?
Попробуйте живую демоверсию Smart Manager
Вывод
Если вы любите программировать, хорошо разбираетесь в хуках и фильтрах, вы можете использовать подход кодирования, чтобы получать информацию о продукте по мере необходимости.
просматривать и управлять сотнями и тысячами продуктов из одного места; быстро выполнять массовое редактирование, экспорт, удаление, дублирование и другие операции с магазином, используя плагин Smart Manager. Вы не пожалеете о своей покупке.
