Как автоматически удалять старые вариации товаров в 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Автоматизация, гибкие условияНужно тестировать, требует навыков разработки
Плагины очистки базыПростота использованияМогут удалять лишнее, требуют проверки
Как использовать Yelly для создания уникальных карт в WordPress
31.03.2026
Как автоматизировать управление отзывами в WordPress с помощью Expert Review
10.02.2026
Как удалить или скрыть адрес email в WordPress от спама: практические решения
29.12.2025
Как настроить автоматическое удаление неактивных пользователей в WordPress
23.05.2026
Как создать собственный виджет в WordPress: практические примеры и советы
23.11.2025
×

Пора действовать!

Скидки на
WordPress!

-20%
на премиум темы

Успей купить ⋙