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

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

HIT

26.05.2018

4192

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 (текстовое название способа оплаты).

[site-socialshare]
  • Похожие записи
  • Комментарии
  • Вложения
Интересные фишки для Woocommerce

Интересные фишки для Woocommerce

Продолжаем серию интересных доработок для Woocmmerce. Выведем дату последней покупки товара У товара такого мета поля нет, нужно сопоставлять наименования (перебирая заказы). Для этого создаем запрос на перебор БД: В Читать далее »

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

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

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

/
Импорт вариаций с одного сайта на другой

Импорт вариаций с одного сайта на другой

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

/

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

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

  1. Алексей

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

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