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

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

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

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

Как проверить, какие свойства отображаются в админке

Перейдите в любой товар WooCommerce в админке, откройте вкладку «Атрибуты». Там видны все добавленные атрибуты. Также можно проверить кастомные метаполя, которые могут отображаться через дополнительные плагины, например Advanced Custom Fields (ACF).

Для диагностики можно использовать простой код, который выведет все пользовательские метаполя товара:

add_action('woocommerce_product_options_general_product_data', function() {
    global $post;
    $meta = get_post_meta($post->ID);
    echo '<pre>';
    print_r($meta);
    echo '</pre>';
});

Этот код добавит в админку товара вывод всех метаполей. Так можно понять, какие именно свойства нужно скрыть.

Пошаговое решение: как удалить или скрыть атрибуты WooCommerce из админки

1. Скрыть стандартные атрибуты из вкладки «Атрибуты» с помощью CSS

Если требуется временно скрыть определённые атрибуты, можно добавить CSS в админку:

add_action('admin_head', function() {
    echo '<style>
    tr.attribute_pa_color { display: none !important; }
    </style>';
});

Где attribute_pa_color — CSS-класс строки с атрибутом color. Имя класса формируется как attribute_pa_{slug}. Этот способ простой, но не удаляет данные, а только скрывает их визуально.

2. Полное удаление атрибута из товаров и базы (PHP)

Чтобы удалить атрибут color из всех товаров и из базы, можно использовать следующий скрипт, который запускается однократно:

function delete_product_attribute_color() {
    global $wpdb;
    // Получаем ID атрибута
    $attribute_taxonomy = 'pa_color';
    // Удаляем термины атрибута из связей с товарами
    $wpdb->query( $wpdb->prepare(
        "DELETE FROM {$wpdb->prefix}term_relationships WHERE term_taxonomy_id IN (SELECT term_taxonomy_id FROM {$wpdb->prefix}term_taxonomy WHERE taxonomy = %s)",
        $attribute_taxonomy
    ));
    // Удаляем термины и таксономии
    $wpdb->query( $wpdb->prepare(
        "DELETE FROM {$wpdb->prefix}terms WHERE term_id IN (SELECT term_id FROM {$wpdb->prefix}term_taxonomy WHERE taxonomy = %s)",
        $attribute_taxonomy
    ));
    $wpdb->query( $wpdb->prepare(
        "DELETE FROM {$wpdb->prefix}term_taxonomy WHERE taxonomy = %s",
        $attribute_taxonomy
    ));
    // Удаляем сам атрибут из wp_woocommerce_attribute_taxonomies
    $wpdb->delete( "{$wpdb->prefix}woocommerce_attribute_taxonomies", [ 'attribute_name' => 'color' ] );
    // Обновляем кэш атрибутов
    delete_transient( 'wc_attribute_taxonomies' );
}
// Запустите один раз и закомментируйте или удалите вызов функции
// delete_product_attribute_color();

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

3. Отключение отображения свойства для определённых ролей через фильтр

Если нужно скрыть свойства только для определённых пользователей (например, редакторов), можно использовать фильтр для удаления метаполя из интерфейса:

add_filter('woocommerce_product_data_tabs', function($tabs) {
    if (!current_user_can('manage_options')) { // не админы
        unset($tabs['attribute']); // скрыть вкладку Атрибуты
    }
    return $tabs;
});

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

  • Перейдите в редактирование товара в админке и проверьте вкладку «Атрибуты». Зависимо от выбранного способа, нужные атрибуты должны быть скрыты или удалены.
  • Для удаления через базу — убедитесь, что атрибут и его термины исчезли из базы данных (таблицы wp_woocommerce_attribute_taxonomies, wp_terms, wp_term_taxonomy).
  • Проверьте работу сайта на фронте, чтобы не было ошибок при отображении товара без удалённых атрибутов.

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

  • Атрибуты не исчезают после удаления в базе: Часто причина — кэш. Очистите transients WooCommerce: delete_transient('wc_attribute_taxonomies'); и очистите кэш сайта/серверный кэш.
  • Появляются ошибки на фронте после удаления атрибутов: Проверьте шаблоны темы и функции, которые используют удалённые атрибуты. Нужно убрать обращения к ним.
  • CSS не скрывает строки атрибутов: Возможно, класс строки отличается. Проверьте через инспектор браузера правильный селектор.
  • Нельзя удалить атрибут, так как он используется: Убедитесь, что нет связанных товаров с этим атрибутом. Если есть — удалите связи через термины (как в примере с SQL).

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

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

Сравнение вариантов удаления или скрытия свойств WooCommerce

МетодОписаниеПлюсыМинусы
CSS скрытиеСкрывает атрибуты визуально через стили в админкеБыстро, не влияет на данныеАтрибуты остаются в базе, можно случайно изменить
Удаление из базы (PHP + SQL)Полное удаление атрибутов и терминов из базыЧистая база, нет лишних данныхРиск повредить данные, требует бэкапа и осторожности
Ограничение доступа (фильтр)Скрывает вкладку «Атрибуты» для выбранных ролейУдобно для мультипользовательских сайтовНе удаляет данные, только скрывает интерфейс
Как избежать проблем с отправкой писем через PHP mail() в WordPress
03.05.2026
Как использовать WooCommerce Cart Cookies для корректного отображения корзины
07.07.2026
Как добавить поддержку WebP в WordPress без плагинов для оптимизации сайта
07.04.2026
Как создать автопостинг в WordPress с использованием WPRemark
30.01.2026
Как использовать REST API в WordPress для создания кастомных эндпоинтов
25.11.2025