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

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

HIT

26.05.2018

4043

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]
  • Похожие записи
  • Комментарии
  • Вложения
Приложить к товару файл

Приложить к товару файл

Рассмотрим какие существуют решение по добавлению к товару файлов: изображений, текстов и прочего. Customer Upload Files for WooCommerce Платное решение от Woo за 49$ (14.04.2021). Включает функционал по добавлению файла(ов) Читать далее »

WooCommerce and 1C:Enterprise

WooCommerce and 1C:Enterprise

Разбираем на элементы плагин WooCommerce and 1C:Enterprise/1С:Предприятие Data Exchange. Плагин дает функционал обмена данными между сайтом и программой 1С: Предприятие. Некоторые моменты синхронизации сайта с 1С описаны в статье Интеграция Читать далее »

Лэйблы используя PHP

Лэйблы используя PHP

Как делать создание лэйблов налету средствами jQuery используя post_class описано здесь. В данной статье сделаем вывод подобных лэйблов средствами WordPress (PHP). Данный способ даст более гибкий и универсальный подход к Читать далее »

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

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

  1. Алексей

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

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