Добавление промежуточного статуса заказа в WooCommerce: пошаговое руководство

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

Зачем нужен промежуточный статус заказа в WooCommerce

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

К примеру, статус «Ожидает подтверждения оплаты» подойдет, если платеж проходит дополнительную проверку, а «Подготовка к отправке» — для отметки, что заказ уже собирается на складе.

Рассмотрим, как добавить такой статус с помощью кода и как интегрировать его в административную панель WooCommerce.

Добавление нового статуса заказа в WooCommerce через functions.php

Для начала добавим новый статус «Ожидает подтверждения» в список доступных статусов WooCommerce.

add_filter('wc_order_statuses', 'wporders_add_custom_order_status');
function wporders_add_custom_order_status($order_statuses) {
    $order_statuses['wc-awaiting-confirmation'] = _x('Ожидает подтверждения', 'Order status', 'woocommerce');
    return $order_statuses;
}

add_action('init', 'wporders_register_custom_order_status');
function wporders_register_custom_order_status() {
    register_post_status('wc-awaiting-confirmation', array(
        'label'                     => _x('Ожидает подтверждения', 'Order status', 'woocommerce'),
        'public'                    => true,
        'exclude_from_search'       => false,
        'show_in_admin_all_list'    => true,
        'show_in_admin_status_list' => true,
        'label_count'               => _n_noop('Ожидает подтверждения <span class="count">(%s)</span>', 'Ожидает подтверждения <span class="count">(%s)</span>', 'woocommerce')
    ));
}

Этот код регистрирует новый статус и добавляет его в перечень доступных статусов заказов в админке.

Объяснение кода

  • register_post_status добавляет новый статус для кастомных записей WooCommerce (заказов).
  • Фильтр wc_order_statuses расширяет список статусов, отображаемых в интерфейсе.
  • Параметры определяют поведение статуса в админке и на фронтенде.

Добавление нового статуса в выбор статусов заказа в админке

Чтобы статус был доступен при редактировании заказа, его нужно добавить в список статусов, которые можно выбрать вручную.

add_filter('woocommerce_order_statuses', 'wporders_add_custom_order_status_to_select');
function wporders_add_custom_order_status_to_select($order_statuses) {
    $new_order_statuses = array();
    foreach ($order_statuses as $key => $status) {
        $new_order_statuses[$key] = $status;
        if ('wc-processing' === $key) {
            $new_order_statuses['wc-awaiting-confirmation'] = 'Ожидает подтверждения';
        }
    }
    return $new_order_statuses;
}

Этот код добавляет новый статус после стандартного «В обработке».

Автоматическое назначение нового статуса

Можно настроить автоматическое переключение заказа в статус «Ожидает подтверждения», например, после создания заказа или при определенных условиях.

add_action('woocommerce_thankyou', 'wporders_set_awaiting_confirmation_status', 10, 1);
function wporders_set_awaiting_confirmation_status($order_id) {
    if (!$order_id) return;
    $order = wc_get_order($order_id);
    if ($order && $order->has_status('pending')) {
        $order->update_status('awaiting-confirmation', 'Статус изменен на ожидание подтверждения оплаты.');
    }
}

В этом примере, когда заказ создан и его статус «Ожидает оплаты», он автоматически переводится в «Ожидает подтверждения».

Отображение нового статуса в уведомлениях и фильтрах

Для полной интеграции можно настроить отображение статуса в email-уведомлениях и на страницах фильтрации заказов.

Добавление статуса в фильтры заказов в админке

add_filter('woocommerce_reports_order_statuses', 'wporders_add_custom_status_to_reports');
function wporders_add_custom_status_to_reports($statuses) {
    $statuses[] = 'awaiting-confirmation';
    return $statuses;
}

Настройка email уведомлений (простой пример)

По умолчанию WooCommerce не отправляет email по новому статусу. Чтобы добавить отправку, нужно создать кастомное уведомление или расширить существующие. Для этого лучше использовать готовые плагины или расширять класс WC_Email.

Если нужна помощь с этим — можно обратиться к плагину Clearfy Pro, который упрощает работу с WooCommerce и настройку уведомлений.

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

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

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

Пример автоматического перевода заказа в статус «Отменен» при длительном ожидании

add_action('wporders_cron_check_orders', 'wporders_auto_cancel_unconfirmed_orders');
function wporders_auto_cancel_unconfirmed_orders() {
    $args = array(
        'limit' => -1,
        'status' => 'awaiting-confirmation',
        'date_modified' => '<' . (time() - 3 * DAY_IN_SECONDS)
    );
    $orders = wc_get_orders($args);
    foreach ($orders as $order) {
        $order->update_status('cancelled', 'Автоматическая отмена заказа после 3 дней ожидания подтверждения.');
    }
}

// Для работы нужно добавить cron задачу, например, через wp_schedule_event
// wp_schedule_event(time(), 'daily', 'wporders_cron_check_orders');

Заключение

Добавление и использование пользовательских статусов заказов в WooCommerce — мощный инструмент для улучшения управления заказами. Это помогает более гибко адаптировать процесс под бизнес-процессы и повысить прозрачность для команды и клиентов.

Если хотите расширить функционал, обратите внимание на плагины с дополнительными возможностями управления статусами, например, Expert Review, который позволяет создавать сложные правила и автоматизации для заказов.

Добавление последовательных вариаций товара в WooCommerce
05.01.2026
Как добавить автоматический импорт заказов в WordPress без WooCommerce
19.03.2026
WooCommerce: автоматическое отключение оплаты при повторных неудачных попытках
26.04.2026
Добавление оповещений о проблемах с оплатой в WooCommerce: практическое руководство
14.01.2026
Автоматическое удаление старых заказов WooCommerce: настройка и практические решения
11.06.2026