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

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

HIT

26.05.2018

4675

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 и валюта

Woocommerce и валюта

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

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

Notice: Функция WP_Styles::add вызвана неправильно. Стиль с дескриптором "editor-buttons" был поставлен в очередь с незарегистрированными зависимостями: dashicons. Дополнительную информацию можно найти на странице «Отладка в WordPress». (Это сообщение было добавлено в версии 6.9.1.) in /home/t/tiberi6w/opttour.ru/public_html/wp-includes/functions.php on line 6170

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

  1. Алексей

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

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