WooCommerce: как изменить стандартный формат названия товара в заказе

Почему нужно менять стандартный формат названия товара в WooCommerce

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

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

Диагностика текущего формата названий товаров в заказах

Для начала нужно понять, как именно выводятся названия товаров в заказах на вашем сайте. Основные места — это:

  • Страница Мои заказы в личном кабинете пользователя;
  • Письма с подтверждением заказа;
  • Админ-панель WooCommerce — страница редактирования заказа;
  • Экспорт заказов, если он настроен.

Проверьте, что именно вас не устраивает в текущем названии. Например, не хватает артикула или специфических характеристик вариаций.

Пошаговое решение: изменение названия товара в заказе с помощью фильтра

WooCommerce для вывода названия товара в заказе использует метод get_name() объекта WC_Order_Item_Product. Чтобы изменить формат вывода, можно подключиться к фильтру woocommerce_order_item_name.

Пример кода для добавления артикула товара к названию в заказе:

add_filter('woocommerce_order_item_name', 'custom_order_item_name_with_sku', 10, 3);
function custom_order_item_name_with_sku($item_name, $item, $is_visible) {
    if (is_admin()) return $item_name; // избегаем в админке

    $product = $item->get_product();
    if (!$product) return $item_name;

    $sku = $product->get_sku();

    if ($sku) {
        $item_name .= ' (Артикул: ' . $sku . ')';
    }

    return $item_name;
}

Этот код добавит артикул в скобках после названия товара в письмах и на страницах заказов.

Расширение: добавление параметров вариаций к названию

Если товар вариативный, полезно добавить параметры вариаций:

add_filter('woocommerce_order_item_name', 'custom_order_item_name_with_variation_attributes', 20, 3);
function custom_order_item_name_with_variation_attributes($item_name, $item, $is_visible) {
    $product = $item->get_product();
    if (!$product) return $item_name;

    if ($product->is_type('variation')) {
        $variation_data = wc_get_formatted_cart_item_data($item->get_meta_data(), true);
        if ($variation_data) {
            $item_name .= ' ' . $variation_data;
        }
    }

    return $item_name;
}

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

Как проверить, что изменения работают

  1. Оформите тестовый заказ с товаром, у которого есть артикул и/или вариации.
  2. Посмотрите название товара в письме о новом заказе.
  3. Перейдите в личный кабинет пользователя и откройте страницу заказа — убедитесь, что название отображается с добавленными данными.
  4. Проверьте страницу редактирования заказа в админке — название товара в списке товаров не должно измениться (за счет проверки is_admin() в коде).

Частые ошибки и как их исправить

  • Название не меняется в письмах или на фронтенде: возможно, фильтр подключен с низким приоритетом или код не загружается. Проверьте, что код добавлен в functions.php вашей темы или в плагине и что нет синтаксических ошибок.
  • Ошибка при получении продукта из $item: убедитесь, что используете метод $item->get_product(), а не обращаетесь напрямую к массиву.
  • Изменения появляются в админке и ломают интерфейс: добавьте условие if (is_admin()) return $item_name; в начале функции, чтобы избежать изменения в админке.
  • Проблемы с кодировкой или спецсимволами: используйте функции WordPress для экранирования вывода, например esc_html(), если выводите название вне контекста WooCommerce.

Практические советы по производительности и безопасности

  • Для оптимизации не делайте тяжелых запросов или сложных вычислений в фильтре, так как он вызывается много раз при загрузке страницы заказа и писем.
  • Избегайте использования глобальных переменных и прямых SQL-запросов внутри фильтра.
  • Пишите код в дочерней теме или отдельном плагине, чтобы избежать потери при обновлении.
  • Проверяйте, что добавляемые данные безопасны — если берете значения из пользовательских полей или метаданных, обязательно фильтруйте и экранируйте их.

Сравнение вариантов изменения названия товара в заказе

Метод Описание Плюсы Минусы
Фильтр woocommerce_order_item_name Изменение названия через PHP-фильтр Гибко, не требует плагинов, быстро Требует навыков программирования, может конфликтовать с другими фильтрами
Плагины для кастомизации WooCommerce Использование готового плагина для изменения названий Простота настройки, поддержка, расширенные опции Может замедлять сайт, не всегда подходит под конкретные задачи
Редактирование шаблонов WooCommerce Изменение PHP-шаблонов вывода заказа Полный контроль над выводом Сложно поддерживать, ломается при обновлениях, требует навыков
WooCommerce: как изменить стандартный формат названия товара в заказе
13.06.2026
Как создать собственный виджет в WordPress с применением PHP и хуков
17.11.2025
Как удалить дубликаты постов в WordPress
30.11.2025
Как избежать проблем с перенаправлениями в WordPress
13.01.2026
WooCommerce: как автоматически удалять заказы по статусу и дате
09.06.2026