Как массово удалить заказы WooCommerce со статусом "Отменен"

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

При активной работе интернет-магазина на WooCommerce количество заказов со статусом "Отменен" может быстро нарастать. Это приводит к раздуванию базы данных, замедлению админки и снижению производительности сайта. Стандартный интерфейс WordPress не позволяет массово удалять заказы — только в один клик удалять по одному заказу. Поэтому возникает задача автоматизировать удаление отменённых заказов, чтобы очистить базу и поддерживать производительность.

Пошаговое решение: удаление отменённых заказов через PHP-код

1. Резервное копирование базы данных

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

2. Подготовка PHP-скрипта для удаления заказов

Этот скрипт можно добавить в файл functions.php вашей активной темы или выполнить через WP-CLI.

function wpb_delete_cancelled_orders() {
    if ( ! current_user_can( 'manage_woocommerce' ) ) {
        return; // Проверка прав
    }

    $args = array(
        'post_type'      => 'shop_order',
        'post_status'    => 'wc-cancelled',
        'posts_per_page' => -1,
        'fields'         => 'ids',
    );

    $orders = get_posts( $args );

    if ( empty( $orders ) ) {
        echo 'Нет заказов со статусом "Отменен" для удаления.';
        return;
    }

    foreach ( $orders as $order_id ) {
        wp_delete_post( $order_id, true ); // Принудительное удаление
    }

    echo count( $orders ) . ' заказ(ов) со статусом "Отменен" удалено.';
}

// Вызов функции, например, при активации темы или вручную
wpb_delete_cancelled_orders();

3. Альтернативный вариант: удаление через WP-CLI

WP-CLI позволяет выполнить удаление быстрее и безопаснее из командной строки:

wp post delete $(wp post list --post_type=shop_order --post_status=wc-cancelled --format=ids) --force

Убедитесь, что WP-CLI установлен и авторизован для вашего сайта.

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

  • Перейдите в WooCommerce → Заказы и примените фильтр по статусу "Отменен". Если все удалено, список должен быть пуст.
  • Проверьте размер базы данных в phpMyAdmin — таблица wp_posts должна уменьшиться.
  • В админке уменьшится время загрузки страницы заказов.

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

  • Отсутствие прав доступа: Скрипт не выполняется из-за недостатка прав. Решение — запускать под пользователем с правами администратора или через WP-CLI.
  • Память PHP: При большом количестве заказов может закончиться память. Увеличьте лимит в php.ini или разбейте удаление на части, например, по 100 заказов за раз.
  • Удаление не срабатывает: Проверьте, правильно ли указан статус заказа wc-cancelled. Иногда кастомные статусы отличаются.

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

  • Всегда делайте резервную копию перед массовыми изменениями.
  • Удаляйте заказы в нерабочее время, чтобы не влиять на работу магазина.
  • Используйте WP-CLI для больших магазинов — это быстрее и надежнее.
  • Регулярно очищайте базу от ненужных заказов и ревизий с помощью плагинов типа Clearfy.

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

МетодПлюсыМинусы
PHP-скрипт в темеЛегко интегрировать, не требует внешних инструментовРиск ошибок при большом объеме, может нагрузить сервер
WP-CLIБыстро, надежно, можно автоматизироватьТребует доступа к серверу по SSH
Плагины для очисткиПростота использования, дополнительные функции очисткиМогут влиять на производительность, не всегда бесплатны

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

⭐⭐⭐⭐⭐
Как автоматизировать удаленную публикацию постов в WordPress через REST API
17.01.2026
Установка и настройка PHP 8 в WordPress без ошибок
08.12.2025
Как использовать REST API в WordPress для создания кастомных настроек
30.11.2025
Как отключить автоматическую отправку писем WooCommerce при сборках заказа
17.06.2026
Как быстро удалить старые вариации продуктов WooCommerce без плагинов
27.06.2026
×

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

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

пишет статьи

готовит SEO

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

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