/ Плагины / Статусы заказов

Статусы заказов

HIT

11.07.2017

10928

4

Как и любой интернет-магазин Woocommerce присваивает заказам определенные статусы в зависимости от отплаты и формирования заказа. Существует 7 различных статусов заказа:

  • В ожидании оплаты (Pending payment)
  • Обработка (Processing)
  • На удержании (On-Hold)
  • Выполнен (Completed)
  • Отменен (Cancelled)
  • Возвращен (Refunded)
  • Не удался (Failed)

Связь формы оплаты и статуса заказа

Если выбрать форму оплаты наличными — статус заказа будет Обработка. Подразумевается, что система никак не проследит момент, когда покупатель оплатит заказ, т.е. необходимо вручную менять статус заказа на Выполнен после получения оплаты, либо Отменен в случае отмены заказа.

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

Оплата электронным платежом (PayKeeper, ЯндексКасса). После оформления заказ получает статус В ожидании оплаты. Если в течение N-го времени заказ не оплачен, то статус меняется на Отменен. Если оплата прошла успешно статус меняется на Обработка.

Уведомление на почту при статусе В ожидании оплаты

// Уведомление о новом заказе для статуса «В ожидании оплаты»
add_action( 'woocommerce_checkout_order_processed', 'pending_new_order_notification', 20, 1 );
function pending_new_order_notification( $order_id ) {

    $order = wc_get_order( $order_id );

    if( ! $order->has_status( 'pending' ) ) return;

    // Отправляем письмо администратору
    WC()->mailer()->get_emails()['WC_Email_New_Order']->trigger( $order_id );
}

Более расширенный код для настройки уведомления о заказе в статусе ожидания оплаты:

add_action( 'woocommerce_checkout_order_processed', 'pending_new_order_notification', 20, 1 );
function pending_new_order_notification( $order_id ) {

    $order = wc_get_order( $order_id );

    if( ! $order->has_status( 'pending' ) ) return;

    $wc_email = WC()->mailer()->get_emails()['WC_Email_New_Order'];

    ## -- Настройка заголовка, темы (и при желании добавить получателей)  -- ##
    // Изменяем тему
    $wc_email->settings['subject'] = __('{site_title} - New customer Pending order ({order_number}) - {order_date}');
    // Изменяем заголовок
    $wc_email->settings['heading'] = __('New customer Pending Order'); 
    // $wc_email->settings['recipient'] .= ',name@mail.com'; // Добавить получателей (через запятую)

    // Отправить уведомление «Новое письмо» (администратору)
    $wc_email->trigger( $order_id );
}

Порядок назначения статусов WC

Поделиться в соц. сетях:

  • Похожие записи
  • Комментарии
  • Вложения
Виртуальный и Скачиваемый товар

Виртуальный и Скачиваемый товар

В интернет-магазине Woocommerce можно создавать Виртуальный и Скачиваемый товары. Разберемся как это выглядит и работает. Виртуальный товар Данная опция не меняет структуру товара. Если при оформлении в корзине только виртуальные Читать далее »

Способ доставки Деловыми линиями

Способ доставки Деловыми линиями

Внедряем в пользовательский способ доставки расчет стоимости Деловых линий. Работа с API Деловые линии Данный функционал я почерпнул с сайта lospirata.ru, но немного упростил. Скрипт ajax-обмена данными: Форма расчета: Содержимое Читать далее »

Отключаем стандартные метабоксы

Отключаем стандартные метабоксы

Отключая стандартные метабоксы, мы фактически избавляемся изначально от лишнего функционала. При отключении метабоксов мы также отключаем сами поля, что позволяет существенно разгрузить таблицу wp_postmeta (особенно если у сайта несколько тысяч Читать далее »

Добавить комментарий

4 комментария

  1. Виталий

    Куда это вставлять то???
    в конец файла функшинс — ошибка сайта.
     

    1. Alexandr

      Ну вообще в functions. По поводу ошибки — нужно смотреть.

  2. Андрей

    У меня проблема. После оформления заказа в WooCoomerce, нажимаю кнопку оплатить, идеь переброс на PayPal —  в этот же момент мне на почту приходит письмо с заказом.- я еще не оплатил заказ- Оплачиваю- Приходит письмо с заказом и с полем, что заказ ОПЛАЧЕН.Как избежать отправки письма, до оплаты? Как сделать так, что бы письмо клиенту с заказом приходило только после оплаты?

    1. Alexandr

      Надо искать функцию запускающую это письмо и исправлять её. Выглядеть должна примерно так:
      add_action( ‘woocommerce_order_status_pending’, array( &$this, ‘custom_trigger_email_action’ ), 10, 2 );

Статусы заказов Статусы заказов
Отработка брошенных корзин
Рекомендации для васОтработка брошенных корзинOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.