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

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

HIT

11.07.2017

6945

2

Как и любой интернет-магазин 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 );
}

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

  • Похожие записи
  • Комментарии
  • Вложения
Upgrade WC

Upgrade WC

Очередная серия улучшений (upgrade) плагина WC. Буду добавлять по мере изучения новые решения. Поиск по SKU (артикулу) Из коробки WC не ищет по артикулам (SKU). Но достаточно установить плагин Search Читать далее »

/
Подкатегория за подкатегорией

Подкатегория за подкатегорией

В одной из ранних статей мы отдельно от основного вывода WC выводили подкатегории. В этой статье мы усложним код вывода категорий и сделаем у категорий и вывод товаров. Это даст Читать далее »

Категория товаров NEW

Категория товаров NEW

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

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

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

  1. Аватар
    Виталий

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

    1. Alexandr
      Alexandr

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

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