Автоматическая подстановка родительской категории товара в WooCommerce

|

Проблема: необходимость автоматической установки родительской категории товара

В стандартном WooCommerce при создании товара категории нужно назначать вручную. Часто у магазинов сложная иерархия категорий, и нужно, чтобы при выборе дочерней категории автоматически добавлялась и соответствующая родительская, чтобы не потерять важные связи для фильтров и навигации.

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

Проверьте, что при добавлении товара в дочернюю категорию родительская не выбирается автоматически:

Если родительские категории не добавляются автоматически — это стандартное поведение WooCommerce.

Пошаговое решение: добавляем код для автоподстановки родительской категории

Реализуем PHP-функцию, которая при сохранении товара будет проверять выбранные категории, находить их родительские категории и добавлять их к товару.

add_action('save_post_product', 'wc_auto_add_parent_categories', 20, 3);function wc_auto_add_parent_categories($post_id, $post, $update) {    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;    if ($post->post_type !== 'product') return;    // Получаем все категории товара    $terms = wp_get_post_terms($post_id, 'product_cat', array('fields' => 'ids'));    if (empty($terms)) return;    $all_terms = $terms;    foreach ($terms as $term_id) {        $parent_id = wp_get_term_taxonomy_parent_id($term_id, 'product_cat');        while ($parent_id) {            if (!in_array($parent_id, $all_terms)) {                $all_terms[] = $parent_id;            }            $parent_id = wp_get_term_taxonomy_parent_id($parent_id, 'product_cat');        }    }    // Обновляем категории товара, включая родительские    wp_set_post_terms($post_id, $all_terms, 'product_cat');}

Объяснение:

Как проверить, что решение работает

Частые ошибки и их причины

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

Таблица сравнения вариантов реализации

Вариант Описание Плюсы Минусы
Код на хуке save_post_product (как в статье) Автоматическая подстановка при сохранении товара Простой, не требует плагинов, работает для всех товаров Не срабатывает при массовом импорте без вызова хуков
Использование плагинов автозаполнения категорий Готовые решения с настройками Удобный интерфейс, поддержка Нагрузка, возможны конфликты, часто платные
Реализация через JavaScript на странице редактирования Автоматическая галочка родительской категории в админке Мгновенная реакция пользователя Не гарантирует корректность в базе при импорте или API
Автоматическое создание иерархии контента в WordPress с помощью WPRemark
01.03.2026
WooCommerce: автоматическое установление родительской категории при импорте товаров
08.05.2026
Как создать иерархию для пользовательских метаполей в WordPress
01.02.2026
WooCommerce: как автоматически установить родительскую категорию при изменении товара
13.07.2026
Как создать иерархию шаблонов в WordPress для разных типов страниц
24.01.2026
×
Обнови свой WordPress!

Держи скидку 15% на премиум тему Reboot

Купить со скидкой ⋙