/ Плагины / Процесс заказа WC

Процесс заказа WC

HIT

26.05.2018

1861

1

Все что связано с процессом непосредственно заказа. Особенно после того как пользователь нажимает кнопку Оформить заказ.

Редирект после оформления заказа

После оформления стандартного заказа woocommerce происходит редирект на шаблон успешного заказа. Пример URL:
https://site.ru/checkout/order-received/6466/?key=wc_order_5b09a31dedcb2

Можно сделать редирект на произвольную страницу:

add_action( 'woocommerce_thankyou', 'bbloomer_redirectcustom');

function bbloomer_redirectcustom( $order_id ){
    $order = new WC_Order( $order_id );
 
    $url = 'https://site.ru/category/stati/';
 
    if ( $order->status != 'failed' ) {
        wp_redirect($url);
        exit;
    }
}

Еще один способ сделать редирект (с помощью js):

add_action( 'woocommerce_thankyou', 'bbloomer_redirectcustom');
 
function bbloomer_redirectcustom( $order_id ){
    $order = new WC_Order( $order_id );
 
    $url = 'http://yoursite.com/custom-url';
 
    if ( $order->status != 'failed' ) {
        echo "<script type='text/javascript'>window.location = '" . $url . "'</script>";
    }
}

Минусом второго способа является, то что пользователь кратковременно видит страницу успешного заказа, и после этого происходит редирект.

Редирект после оформления заказа методом Яндекс

Это уже сложнее, т.к. по умолчанию при выборе метода оплаты Яндекс Кассой (Банковскими картами, Яндекс Кошелек, и т.д.) происходит переадрессация на сервис Яндекс.

Изменяем плагин Яндекс.Касса 2.0 для Woocommerce

В файле плагина yandex-money-checkout/gateway/YandexMoneyCheckoutGateway.php (для варианта оплаты банковскими картами) изменяем строки 245-247

} elseif ($result->confirmation->type == ConfirmationType::REDIRECT) {
       return array('result' => 'success', 'redirect' => $result->confirmation->confirmationUrl);
}

добавляя свое условие, в зависимости от статуса заказа:

} elseif ($result->confirmation->type == ConfirmationType::REDIRECT) {                 
     if('processing' == $order_status){
     return array('result' => 'success', 'redirect' => $result->confirmation->confirmationUrl);
     } else {	
     return array('result' => 'success', 'redirect' => $order->get_checkout_order_received_url());
     }                   
}

Теперь при оформлении заказа пользователя будет перекидывать на шаблон успешного заказа и из личного кабинета, при попытке оплатить он также будет снова перекинут на страницу заказа. А при изменении статуса заказа на В обработке, и при оплате из личного кабинета пользователь будет перенаправлен в платежный модуль Яндекс.

Изменение заказа

Изменение состава заказа доступно при статусах На удержании (первый статус при оплате оффлайн), В ожидании оплаты (первый статус при оплате онлайн).
Состав заказа можно менять только из админки. Менять можно Наименование (удаляя имеющиеся позиции и добавляя новые), Количество, и локально (только для этого заказа) Цены на позиции. После изменения заказа необходимо внизу под заказом нажимать кнопку Пересчитать.

Поменять способ оплаты

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

Все это можно сделать и через БД

Сам заказ в таблице wp_posts, все параметры заказа в таблице wp_postmeta (ищем нужный заказ по post_id). Для изменения способа оплаты меняем две строки:

_payment_method (cod — оплата наличными, paykeeper — оплата эл.платежем Paykeeper, bacs — прямой банковский перевод) и _payment_method_title (текстовое название способа оплаты).

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

  • Похожие записи
  • Комментарии
  • Вложения
Изменяем админку Woocommerce

Изменяем админку Woocommerce

В данной статье собираются сниппеты меняющие функционал или внешний вид админ части Woocommerce. Вернуть выпадающий список категорий С версии WC 3.2 изменился фильтр постов в админке, конкретно выбор категории. Теперь Читать далее »

/
Предварительная стоимость (товар + количество)

Предварительная стоимость (товар + количество)

Необходимо сделать, чтобы при изменении количества посетитель видел финальную стоимость покупки (а не тогда, когда он уже закинул товар в корзину). Решение для простого товара // Предварительная сумма: Цена + Читать далее »

WooCommerce AJAX Products Filter

WooCommerce AJAX Products Filter

Раннее данный фильтр участвовал в общем обзоре, в котором я приводил основные особенности. Рассмотрим подробнее работу с фильтром WooCommerce AJAX Products Filter (также он называется Advanced AJAX Product Filters). Работа Читать далее »

/

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

1 комментарий

  1. Аватар
    Алексей

    Можно управлять заказами по Е-майл? Можно ли сделать?
    Как пример: пришло пользователю письмо с его заказом, внизу письма ссылка (кнопка) «Отказаться от заказа», при нажатии происходит отмена заказа не посещая сайт.
    Или пришло письмо админу о новом заказе, в самом низу письма кнопка «Заказ выполнен» при нажатии на неё переход по ссылке и статус заказа меняеться не заходя в админку.
    Возможно такое?

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