Удаление ненужных типов записей WooCommerce без плагинов: практическое руководство

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

WooCommerce при установке добавляет в WordPress несколько типов записей: product (товары), shop_order (заказы), shop_coupon (купоны) и другие. Иногда при интеграции WooCommerce с другими системами или кастомными решениями появляется необходимость убрать или скрыть некоторые типы записей, например, shop_coupon или shop_order из админки или из REST API. Это может быть нужно чтобы упростить интерфейс, избежать путаницы или защитить данные. Однако WooCommerce не предоставляет стандартных опций для полного удаления этих типов записей — они жестко регистрируются плагином.

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

Как проверить, какие типы записей WooCommerce используются

  • В админке перейдите в «Товары», «Заказы», «Купоны» — это основные типы.
  • Выполните запрос к базе данных, чтобы посмотреть количество записей каждого типа:
    SELECT post_type, COUNT(ID) FROM wp_posts GROUP BY post_type;
  • Проверьте, используются ли кастомные типы записей в сторонних плагинах или темах.

Пошаговое удаление ненужных типов записей WooCommerce без плагинов

1. Отключение отображения в админке

Полное удаление типов записей невозможно без изменения исходного кода WooCommerce, но можно скрыть их из меню и списков. Добавьте в functions.php вашей дочерней темы или в кастомный плагин следующий код для скрытия типа записи shop_coupon из меню и админки:

add_action('admin_menu', function() {
    remove_menu_page('edit.php?post_type=shop_coupon');
});

add_action('pre_get_posts', function($query) {
    if (is_admin() && $query->get('post_type') === 'shop_coupon') {
        $query->set('post_type', ''); // Запретить отображение в списках
    }
}, 99);

2. Исключение типа записи из REST API

Чтобы убрать тип записи из REST API WooCommerce, используйте следующий фильтр:

add_filter('register_post_type_args', function($args, $post_type) {
    if ($post_type === 'shop_coupon') {
        $args['show_in_rest'] = false;
    }
    return $args;
}, 10, 2);

3. Удаление записей типа записи (если нужно)

Если нужно удалить все записи типа shop_coupon из базы, используйте WP-CLI или SQL запрос:

wp post delete $(wp post list --post_type=shop_coupon --format=ids) --force

Или вручную в базе данных:

DELETE FROM wp_posts WHERE post_type = 'shop_coupon';

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

  • Перейдите в админку WordPress и убедитесь, что пункт меню «Купоны» исчез.
  • Выполните запрос к REST API: https://example.com/wp-json/wp/v2/shop_coupon — должен быть 404 или ошибка.
  • Проверьте, что товары и заказы продолжают работать корректно.

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

  • Тип записи все еще виден в админке: возможно, другой плагин добавляет меню или переопределяет его. Проверьте порядок подключаемых хуков.
  • Удаление записей не происходит: убедитесь, что используете --force в WP-CLI, чтобы обойти корзину.
  • Сайт ломается после удаления типа записи: проверьте зависимости, если другие части WooCommerce или темы используют удаляемый тип.

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

  • Перед массовым удалением данных сделайте резервную копию базы.
  • Удаление сложных типов записей лучше планировать на время низкой нагрузки.
  • Чтобы скрыть тип записи, не удаляйте его, а используйте фильтры и хуки — это безопаснее.
  • При работе с REST API ограничивайте доступ через аутентификацию или скрывайте ненужные типы.

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

МетодПлюсыМинусыПример кода
Скрытие через remove_menu_pageПростота, не ломает функционалТип записи остается в базе и REST APIremove_menu_page('edit.php?post_type=shop_coupon');
Отключение REST API (show_in_rest=false)Убирает из API, повышает безопасностьНе удаляет записи и менюadd_filter('register_post_type_args', ...)
Массовое удаление записейУдаляет данные, освобождает местоРиск потери данных, требует резервного копированияwp post delete ... --force

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как массово удалить заказы WooCommerce со статусом "Отменен"
07.07.2026
Как быстро удалить старые вариации продуктов WooCommerce без плагинов
27.06.2026
Как безопасно удалить файлы темы в WordPress без последствий
19.12.2025
Как использовать WP-Cron для автоматизации задач в WordPress: практическое руководство
29.04.2026
Как избежать проблем с разрешениями при загрузке медиафайлов в WordPress
16.06.2026
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше