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

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

HIT

11.07.2017

4305

Deprecated: Function create_function() is deprecated in /home/t/tiberi6w/opttour.ru/public_html/wp-content/plugins/wp-spamshield/wp-spamshield.php on line 2033

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

Тэги:

Поделится информацией с друзьями

  • Похожие записи
  • Комментарии
  • Вложения
Заявка на товар

Заявка на товар

Бывает так, что нам не нужно непосредственно продавать товар через сайт, а только лишь получить на него заявку. Данный механизм прост: нам нужно создать форму обратной связи в которую будет Читать далее »

/
Выравнивание миниатюр товаров

Выравнивание миниатюр товаров

Идеальная ситуация, когда мы загружаем изображения для товаров (хотя бы для главного изображения) квадратными. т.е. заранее подготовленными, откадрированными. Но бывают случаи, когда на сайт начинают заливаться изображения разных пропорций. Сделаем Читать далее »

/
Интеграция Woocommerce с 1С

Интеграция Woocommerce с 1С

Deprecated: Function create_function() is deprecated in /home/t/tiberi6w/opttour.ru/public_html/wp-content/plugins/wp-spamshield/wp-spamshield.php on line 2033

Интеграция Woocommerce с 1С — довольно сложная тема с множеством нюансов. Буду описывать на что стоит обращать внимание, с какими проблемами пришлось столкнуться. Плагин 1С:Предприятие Data Exchange Так как не Читать далее »

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

Пока нет комментариев. Будь первым!

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