WooCommerce: как получить ID товара — 5 рабочих способов

0
43

Стандартные способы получить ID товара в WooCommerce

Как узнать ID записи, рубрики, тега или товара в WordPress? - изображение номер один
Как узнать ID записи, рубрики, тега или товара в WordPress? — изображение номер один

Чтобы woocommerce получить id товара стандартными методами, достаточно заглянуть в админку. Откройте список продуктов и наведите курсор на нужное наименование — в строке браузера появится ссылка, где после post= указан цифровой идентификатор. Альтернатива — колонка «ID» в таблице товаров (её включают через настройки экрана).

Где посмотреть ID товара в админке WordPress

Как узнать ID записи, страницы, рубрики, тега, товара и категории товара в WordP - изображение номер два
Как узнать ID записи, страницы, рубрики, тега, товара и категории товара в WordP — изображение номер два

Чтобы узнать числовой идентификатор позиции, зайдите в консоль управления сайтом. Откройте раздел «Товары» — там отобразится перечень всех созданных единиц. В стандартной таблице колонка с идентификатором обычно скрыта. Для её отображения кликните на «Настройки экрана» в верхней части страницы и отметьте пункт «ID». После этого в каждой строке появится соответствующее число.

Как узнать ID через URL-ссылку на товар

Как узнать ID записи, страницы, рубрики, тега, товара и категории товара в WordP - изображение номер три
Как узнать ID записи, страницы, рубрики, тега, товара и категории товара в WordP — изображение номер три

Самый быстрый способ — взглянуть на адресную строку браузера, когда вы находитесь на странице редактирования позиции в админке.

  • Откройте список всех продуктов в консоли: «Товары» → «Все товары».
  • Наведите курсор на название нужной позиции. Внизу экрана (в статусной строке) появится ссылка.
  • Либо кликните по названию, чтобы перейти в редактор.

В URL вы увидите примерно такую конструкцию: /wp-admin/post.php?post=12345&action=edit. Цифры после post= — это и есть идентификатор. Обратите внимание: параметр post всегда указывает на внутренний номер записи в базе данных WordPress, который WooCommerce использует для товаров.

Программное получение ID товара через PHP-код

Когда стандартные средства админки недоступны, разработчики обращаются к функциям ядра. Для извлечения идентификатора в цикле или при обработке заказа применяется глобальный объект $product. Метод get_id() возвращает числовой код позиции. Альтернативный путь — использование get_the_ID() внутри петли WP. В таблице ниже приведены основные варианты вызова:

Сценарий Код
Внутри цикла товаров get_the_ID()
Из объекта продукта $product->get_id()
Из переменной $post $post->ID

Указанные конструкции работают как в шаблонах темы, так и в пользовательских плагинах.

Использование глобального объекта $product и метода get_id()

What is Tag_Id in WordPress: Essential Insights - Web Tool Plex - изображение номер четыре
What is Tag_Id in WordPress: Essential Insights — Web Tool Plex — изображение номер четыре

Когда код выполняется в пределах цикла товаров (например, в archive-продукт.php), проще всего обратиться к глобальной переменной. Она даёт доступ к данным текущего изделия без лишних запросов. Достаточно объявить global $product; и вызвать $product->get_id(). Это возвращает числовой идентификатор позиции. Метод работает и внутри хуков, где объект уже определён системой. Такой подход экономит ресурсы и ускоряет разработку.

Функция get_the_ID() для получения ID в цикле

How to Get the Product ID in WooCommerce - изображение номер пять
How to Get the Product ID in WooCommerce — изображение номер пять

Когда вы обрабатываете товары внутри цикла WordPress (например, в файле archive-product.php), самым простым способом оказывается встроенная функция get_the_ID(). Этот метод возвращает числовой идентификатор текущей записи. Вызывать её следует без аргументов, предварительно убедившись, что цикл запущен. Срабатывает она только в контексте глобального объекта $post. Альтернатива — прямое обращение к $product->get_id(), но такой подход требует наличия объекта товара.

ЧИТАЙТЕ ТАКЖЕ:  Конфликт имен в C: причины, решения и лучшие практики

Получение ID товара по его названию или артикулу

Шорткоды WooCommerce - изображение номер шесть
Шорткоды WooCommerce — изображение номер шесть

Когда нужно отыскать идентификатор, опираясь на название продукта или его SKU, применяют запросы к базе данных. Ниже разобраны два рабочих варианта для такой задачи.

  • Через WP_Query: создаётся запрос с параметрами ‘title’ или ‘sku’, после чего из результата извлекается ID записи.
  • Прямой SQL-запрос: в таблице wp_posts ищут строку по столбцам post_title или post_name, затем берут соответствующее значение ID.

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

Как найти ID товара по названию через wp_query

Как узнать ID записи, рубрики, тега или товара в WordPress? - изображение номер семь
Как узнать ID записи, рубрики, тега или товара в WordPress? — изображение номер семь

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

  1. Создайте запрос с аргументом 'title' => 'Искомое название' и 'post_type' => 'product'.
  2. Запустите цикл while( $query->have_posts() ).
  3. Внутри цикла вызовите get_the_ID() — он вернёт цифровой код изделия.

Такой подход удобен, если вы работаете с кастомными скриптами и не хотите лезть в базу данных напрямую. Главное — не забыть вызвать wp_reset_postdata() после цикла, чтобы не сломать глобальную переменную $post.

Поиск ID товара в WooCommerce по артикулу (SKU)

Как найти ID категорий товаров - изображение номер восемь
Как найти ID категорий товаров — изображение номер восемь

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

  • Через базу данных (phpMyAdmin). Запрос к таблице wp_postmeta по полю meta_key = ‘_sku’ выдаст нужный номер.
  • С помощью функции wc_get_product_id_by_sku() в файлах темы или плагина. Ей передаётся строка артикула, а на выходе — идентификатор.
  • Используя REST API. GET-запрос по адресу /wp-json/wc/v3/products?sku=ВАШ_АРТИКУЛ возвращает JSON с полным объектом.

Каждый из этих подходов решает задачу, но для автоматизации чаще применяют второй вариант — он не требует прямого доступа к БД.

Работа с ID товара в шаблонах и хуках темы

Внутри файлов темы (single-product.php, functions.php) идентификатор продукта часто извлекается через глобальный объект $product. Вызов $product->get_id() возвращает числовой код позиции. Для хуков вроде woocommerce_before_single_product_summary аргумент передаётся автоматически — его можно получить через $args[‘id’]. Альтернативный вариант: использовать get_the_ID() внутри цикла WooCommerce. Это удобно для кастомных вставок в карточку товара.

Добавление ID товара в произвольный вывод на странице

Как использовать шорткоды WooCommerce Impuls-Web.ru - изображение номер девять
Как использовать шорткоды WooCommerce Impuls-Web.ru — изображение номер девять

Когда требуется показать идентификатор позиции за пределами стандартного цикла, используют прямые обращения к объекту через WC_Product. Например, в файлах темы (single-product.php или archive-product.php) можно вставить такой фрагмент:

<?php
$product_id = $product->get_id();
echo 'Артикул: ' . $product_id;
?>

Для произвольных виджетов или шорткодов применяют фильтры. Вот пример вставки идентификатора в название товара:

  • Добавьте код в functions.php дочерней темы.
  • Используйте хук the_title для модификации вывода.

Таблица ниже показывает типовые сценарии и соответствующие методы:

Ситуация Код
Внутри цикла WP_Query $product->get_id()
По slug или URL wc_get_product_id_by_slug( $slug )

Использование ID для создания кастомных ссылок и кнопок

How to Get the Product ID in WooCommerce and Use It Liquid Web - изображение номер десять
How to Get the Product ID in WooCommerce and Use It Liquid Web — изображение номер десять

Когда номер позиции известен, его применяют для генерации нестандартных ссылок. Например, так формируют прямые переходы к редактированию записи в админке или добавляют кнопку «Купить сейчас», ведущую на конкретную страницу. Без этого идентификатора пришлось бы искать товар по другим признакам — что медленнее и ненадёжнее.

  • Прямая ссылка на корзину: /cart/?add-to-cart=123.
  • Кнопка «В избранное» с привязкой к ID через JavaScript.
  • Формирование QR-кода для быстрого доступа к карточке.
Сценарий Пример URL
Быстрый переход в админку /wp-admin/post.php?post=45&action=edit
Кастомная кнопка заказа /checkout/?product_id=78