Как удалить или скрыть свойства товара WooCommerce в админке WordPress

Диагностика проблемы: зачем удалять или скрывать свойства товара в WooCommerce

В стандартной админке WooCommerce свойства товара (product attributes) отображаются на странице редактирования товара и в разделе «Атрибуты». Иногда возникает необходимость скрыть или полностью удалить некоторые свойства, чтобы упростить интерфейс для менеджеров, или чтобы предотвратить использование устаревших или неактуальных атрибутов. Это особенно актуально на крупных магазинах с большим набором атрибутов.

Пример: вы создали атрибут "Цвет", но решили, что он больше не нужен и не хотите, чтобы менеджеры случайно его применяли к новым товарам, при этом не хотите полностью удалять атрибут из базы (чтобы сохранить старые товары с этим атрибутом).

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

Все свойства товаров в WooCommerce хранятся как таксономии с префиксом pa_. Например, атрибут "Цвет" будет таксономией pa_color. Чтобы увидеть все доступные атрибуты, можно выполнить SQL-запрос к базе данных или использовать WP CLI:

wp taxonomy list --fields=name,label,description | grep pa_

Или получить список таксономий в коде:

function wpa_list_product_attributes() {
    $taxonomies = get_object_taxonomies( 'product', 'objects' );
    foreach( $taxonomies as $taxonomy ) {
        if ( strpos( $taxonomy->name, 'pa_' ) === 0 ) {
            error_log( 'Attribute: ' . $taxonomy->name );
        }
    }
}
add_action( 'init', 'wpa_list_product_attributes' );

Пошаговое решение: как скрыть свойства товара в админке WooCommerce

1. Скрыть атрибут из метабокса редактирования товара

Чтобы скрыть определённый атрибут из метабокса «Атрибуты» на странице редактирования товара, можно использовать фильтр woocommerce_product_data_tabs для удаления вкладки или JavaScript для скрытия отдельных элементов.

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

function wpa_filter_product_attributes_dropdown( $taxonomies ) {
    // Указываем таксономии-атрибуты для скрытия
    $hidden_attributes = array( 'pa_color', 'pa_size' );

    foreach ( $hidden_attributes as $hidden ) {
        if ( isset( $taxonomies[ $hidden ] ) ) {
            unset( $taxonomies[ $hidden ] );
        }
    }
    return $taxonomies;
}
add_filter( 'woocommerce_attribute_taxonomies_dropdown', 'wpa_filter_product_attributes_dropdown' );

2. Полное удаление атрибута из базы данных

Если нужно полностью удалить атрибут (таксономию), это делается через админку WooCommerce > Товары > Атрибуты. Но для удаления программно можно вызвать функцию:

global $wpdb;
$attribute_name = 'color'; // имя атрибута без 'pa_'
$wpdb->delete( "{$wpdb->prefix}woocommerce_attribute_taxonomies", [ 'attribute_name' => $attribute_name ] );

// Удаляем таксономию "pa_color"
unregister_taxonomy( 'pa_color' );

Важно: удаление атрибута приведёт к потере связанной с ним информации на товарах, поэтому сначала сделайте бэкап.

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

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

Для проверки полного удаления атрибута можно использовать WP CLI:

wp taxonomy list | grep pa_color

Если таксономии нет — удаление прошло успешно.

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

  • Атрибут всё ещё отображается: возможно, кэш страниц или объектный кэш не сброшен. Очистите кэш плагина или сервера.
  • После удаления атрибута появляются ошибки в админке: убедитесь, что все ссылки на атрибут удалены из товаров и метаданных.
  • Код не сработал: проверьте, что хук добавлен в правильное место, и что приоритет позволяет перехватить данные.

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

  • Всегда делайте резервные копии базы данных перед удалением атрибутов.
  • Используйте child-тему или собственный плагин для добавления кода, чтобы не потерять изменения при обновлении WooCommerce.
  • Скрытие через код предпочтительнее удаления для сохранения данных и возможности вернуть атрибут.
  • Для оптимизации интерфейса используйте минимальные изменения JavaScript или CSS, а не глобальные отключения функций WooCommerce.

Сравнение способов управления свойствами товара WooCommerce

СпособПлюсыМинусыРекомендации
Скрытие атрибутов через фильтры и хуки Не удаляет данные, прост в реализации, безопасно Атрибуты остаются в базе, могут быть доступны через API Для временного ограничения доступа
Полное удаление атрибутов из базы Чистая база, нет лишних данных Потеря данных, риск ошибок, требует бэкапа Для окончательного удаления неиспользуемых атрибутов
Использование плагинов для управления атрибутами Интерфейс, дополнительные функции Дополнительная нагрузка, возможные конфликты Если нужны расширенные возможности
Как правильно сделать удалённый раздел админки WordPress для клиентов
04.03.2026
Как добавить поддержку JSON-LD в WordPress для SEO
19.12.2025
Как создать фильтры для товаров в WooCommerce без плагинов
19.01.2026
Как удалить пустые теги в WordPress: эффективные методы
15.04.2026
Как автоматизировать удаление неиспользуемых шорткодов в WordPress
31.03.2026