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

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

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

  • загромождению базы данных;
  • замедлению загрузки страниц редактирования товара;
  • ошибкам в отображении и выборе вариаций на сайте.

Для проверки количества вариаций конкретного товара можно использовать следующий SQL-запрос в phpMyAdmin или другом инструменте работы с БД:

SELECT COUNT(*) FROM wp_posts WHERE post_parent = {ID_товара} AND post_type = 'product_variation';

Если количество вариаций значительно превышает актуальные, стоит рассмотреть их массовое удаление.

Как удалить вариации товара через код

Вместо установки дополнительных плагинов можно написать небольшой скрипт, который удалит все вариации для выбранного товара по его ID.

Пошаговое решение

  1. Подготовьте ID товара, вариации которого нужно удалить.
  2. Добавьте следующий код в файл functions.php вашей активной темы или создайте небольшой плагин:
function delete_product_variations( $product_id ) {
    $product = wc_get_product( $product_id );
    if ( ! $product || $product->get_type() !== 'variable' ) {
        return 'Товар не найден или не является вариативным';
    }
    $variations = $product->get_children();
    foreach ( $variations as $variation_id ) {
        wp_delete_post( $variation_id, true );
    }
    return 'Вариации удалены успешно';
}

// Пример вызова функции:
echo delete_product_variations( 123 ); // замените 123 на ID вашего товара
  • Вызовите функцию с нужным ID товара. Лучше сделать это через временный файл или через интерфейс отладки, чтобы избежать постоянного выполнения кода.
  • Проверка результата удаления вариаций

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

    • Обновите страницу редактирования товара в админке WooCommerce. Вкладка вариаций должна быть пустой.
    • Выполните повторный SQL-запрос из раздела диагностики — количество вариаций должно быть 0.
    • Проверьте на фронтенде товара — варианты выбора вариаций должны отсутствовать.

    Частые ошибки при удалении вариаций и как их исправить

    • Товар не является вариативным: функция не удалит вариации, т.к. их нет. Проверьте тип товара $product->get_type().
    • Ошибка прав доступа: убедитесь, что код выполняется с достаточными правами, лучше временно использовать wp_delete_post($variation_id, true) для полного удаления.
    • Удаление не происходит: возможно, код вызывается до полной загрузки WooCommerce. Используйте хук init или запустите код через WP-CLI.

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

    • Удаляйте вариации только при необходимости — частые массовые удаления могут нагрузить сервер.
    • Перед удалением сделайте резервную копию базы данных.
    • Для массовой очистки вариаций большого количества товаров используйте WP-CLI и пакетные операции с ограничением по времени и количеству.
    • Если у вас есть плагин Clearfy Pro от WPSHOP, используйте его инструменты для оптимизации и очистки базы — это ускорит процесс и снизит риски.

    Сравнение методов удаления вариаций

    МетодОписаниеПлюсыМинусы
    Через код (functions.php)Ручной вызов функции удаления вариаций по ID товара.Контроль, не требует плагина.Требует технических навыков, риск ошибок при неправильном использовании.
    WP-CLIКомандная строка для массового удаления.Быстро, масштабируемо, безопасно при правильном использовании.Требует доступа к серверу и навыков работы с консолью.
    Плагины оптимизацииГотовые инструменты с интерфейсом для очистки базы.Простота использования, дополнительные функции.Нагрузка на сервер, возможный конфликт с другими плагинами.
    WooCommerce: как изменить количество товаров в корзине без перезагрузки страницы
    18.05.2026
    Как создать собственный виджет в WordPress с примером кода
    28.12.2025
    Как отключить пагинацию в WordPress без плагинов
    25.02.2026
    WooCommerce: удаление вариативных товаров через код без плагинов
    12.05.2026
    WooCommerce: автоматическая очистка корзины и отслеживание брошенных заказов
    23.04.2026