Как использовать кастомные колонки в WooCommerce для управления продуктами

Диагностика задачи: зачем нужны кастомные колонки в WooCommerce

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

Добавляем кастомные колонки: пошаговое решение

1. Добавление новой колонки

Используйте фильтр manage_edit-product_columns для добавления колонки в таблицу продуктов на странице администратора.

add_filter('manage_edit-product_columns', 'wphost_add_custom_product_column');
function wphost_add_custom_product_column($columns) {
    // Вставляем новую колонку после 'price'
    $new_columns = array();
    foreach ($columns as $key => $value) {
        $new_columns[$key] = $value;
        if ($key === 'price') {
            $new_columns['custom_sku'] = 'Артикул производителя';
        }
    }
    return $new_columns;
}

2. Заполнение данных в кастомной колонке

Чтобы вывести данные, используйте хук manage_product_posts_custom_column. Здесь мы получим мета-данные товара по ключу _custom_sku.

add_action('manage_product_posts_custom_column', 'wphost_fill_custom_product_column', 10, 2);
function wphost_fill_custom_product_column($column, $post_id) {
    if ($column === 'custom_sku') {
        $custom_sku = get_post_meta($post_id, '_custom_sku', true);
        echo $custom_sku ? esc_html($custom_sku) : '—';
    }
}

3. Добавление поля для ввода артикула в админку товара

Чтобы заполнить мета-данные _custom_sku, добавим поле в мета-бокс редактирования товара.

add_action('woocommerce_product_options_general_product_data', 'wphost_add_custom_sku_field');
function wphost_add_custom_sku_field() {
    woocommerce_wp_text_input(array(
        'id' => '_custom_sku',
        'label' => 'Артикул производителя',
        'desc_tip' => true,
        'description' => 'Введите артикул производителя для этого товара.',
    ));
}

add_action('woocommerce_process_product_meta', 'wphost_save_custom_sku_field');
function wphost_save_custom_sku_field($post_id) {
    $custom_sku = isset($_POST['_custom_sku']) ? sanitize_text_field($_POST['_custom_sku']) : '';
    update_post_meta($post_id, '_custom_sku', $custom_sku);
}

Проверка результата после внедрения

После добавления кода:

  • Перейдите в админку WooCommerce → Товары.
  • Убедитесь, что появилась новая колонка «Артикул производителя» после цены.
  • Откройте любой товар на редактирование и заполните поле «Артикул производителя».
  • Сохраните товар и проверьте, что введённый артикул отображается в новой колонке.

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

  • Колонка не появляется — проверьте правильность названия хука manage_edit-product_columns и что код добавлен в functions.php активной темы или в плагин.
  • Данные не сохраняются — убедитесь, что функция сохранения привязана к woocommerce_process_product_meta и что в форме нет ошибок.
  • Отображается пустая ячейка — проверьте, что мета-ключ _custom_sku заполнен и что используется функция get_post_meta с правильным ID товара.

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

  • Используйте sanitize_text_field() при сохранении пользовательских данных, чтобы исключить XSS-уязвимости.
  • Минимизируйте количество кастомных колонок, чтобы не замедлять загрузку страницы списка товаров.
  • Если добавляете много колонок с метаданными, рассмотрите использование кэширования результатов для ускорения отображения.

Сравнение способов добавления кастомных данных в WooCommerce

МетодОписаниеПлюсыМинусы
Код (фильтры и экшены)Добавление колонок и полей через хуки WooCommerceБыстро, гибко, нет плагиновТребует навыков, возможны ошибки
Плагины (например, Admin Columns)Графический интерфейс для добавления колонок и управления имиПросто, много функций, поддержкаНагрузка на сайт, дополнительные обновления
Кастомные таблицы в базеХранение данных отдельно от постметаПроизводительно при большом объеме данныхСложно в реализации, требует поддержки
Как удалить сложный кеш WooCommerce без плагинов
06.06.2026
Как изменить адрес авторской страницы в WordPress без плагинов
20.12.2025
Как изменить уникальный slug в WordPress для записей без плагинов
07.03.2026
Добавление коллекции атрибутов для товаров WooCommerce без плагинов: практическое руководство
21.06.2026
Как избежать проблем с блокировкой базы данных в WordPress
26.02.2026