Как автоматически удалять старые вариации товаров в WooCommerce

|

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

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

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

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

1. Определяем критерии устаревших вариаций

Для удаления нужно выбрать условия, по которым вариация считается старой. Например:

В этом примере возьмём дату последнего обновления.

2. Создаём функцию для удаления вариаций по дате последнего обновления

Используем WP_Query для выборки вариаций (product_variation) и проверяем post_modified. Далее удаляем их programmно.

function delete_old_product_variations() {
    $date_threshold = date('Y-m-d H:i:s', strtotime('-6 months'));
    $args = [
        'post_type'      => 'product_variation',
        'post_status'    => ['publish', 'private'],
        'posts_per_page' => -1,
        'date_query'     => [
            [
                'column' => 'post_modified',
                'before' => $date_threshold,
            ],
        ],
        'fields'         => 'ids',
    ];
    $query = new WP_Query($args);

    if (!$query->have_posts()) {
        return;
    }

    foreach ($query->posts as $variation_id) {
        wp_delete_post($variation_id, true); // true — без перемещения в корзину
    }
}

3. Добавляем запуск функции по расписанию с WP-Cron

Чтобы не запускать вручную, создадим задачу WP-Cron, которая будет запускать удаление раз в месяц.

if (!wp_next_scheduled('delete_old_variations_monthly')) {
    wp_schedule_event(time(), 'monthly', 'delete_old_variations_monthly');
}

add_action('delete_old_variations_monthly', 'delete_old_product_variations');

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

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

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

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

МетодПлюсыМинусы
Ручное удаление в админкеПростота, не требует кодаДолго, неудобно при большом количестве вариаций
Скрипт на PHP с WP_Query + wp_delete_postАвтоматизация, гибкие условияНужно тестировать, требует навыков разработки
Плагины очистки базыПростота использованияМогут удалять лишнее, требуют проверки
Как создать автоматический редирект в WordPress: практические примеры и плагины
09.11.2025
Как создать динамическую таблицу в WordPress с помощью AJAX
18.02.2026
Как изменить URL AJAX в WordPress: практические решения и примеры
04.03.2026
Как удалить неиспользуемые метаданные в WordPress: оптимизация базы данных
30.11.2025
Как отключить AJAX в WooCommerce и решить проблемы с корзиной
04.07.2026
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее