Как автоматически утверждать заказы в WooCommerce

Опубликовано: 2020-09-25

Автоматическое одобрение заказов WooCommerce Если вы управляете магазином электронной коммерции, то вы знаете, что сайт требует отслеживания и управления заказами. Однако это может быть напряженной работой для администратора, особенно если ваш интернет-магазин имеет высокую посещаемость, что приводит к большому количеству заказов в день.

Кроме того, вы знаете, что заказ создается сразу после завершения процесса оформления заказа. Заказу присваивается статус в зависимости от того, на какой стадии он находится в цепочке «оплата-доставка».

Кроме того, статусы устанавливаются или изменяются WooCommerce, платежным шлюзом и администратором магазина в зависимости от того, где инициирован заказ.

После завершения оплаты заказа, если пользователь не выбрал вариант «Наложенный платеж». Когда заказ выполнен, его статус устанавливается на «В обработке» до тех пор, пока владелец магазина вручную не изменит его на «Выполнен». Это будет непростой задачей для владельца магазина или администратора.

Автоматическое одобрение заказов WooCommerce

В этом кратком руководстве я поделюсь с вами пользовательским PHP-кодом, который поможет вам автоматически устанавливать статус заказа как «Выполнен» всякий раз, когда платеж был успешно произведен. Это означает, что даже если пользователь выберет вариант «Наложенный платеж», статус заказа автоматически изменится на «Выполнен».

Кроме того, я также поделюсь с вами решением, которое автоматически установит статус заказа WooCommerce как Завершенный для виртуальных продуктов. Эти продукты не являются материальными или загружаемыми.

Это связано с тем, что подписка на членство может иметь не материальную форму, а дату истечения срока действия. Если вы имеете дело со загружаемыми товарами, опцию «Наложенный платеж» включать не следует, а вместо этого следует добавить только условие проверки того, все ли товары в заказе являются виртуальными.

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

  • Автоматически установите статус заказа WooCommerce как «Выполнен» в зависимости от способа оплаты.
  • Автоматически устанавливать статус заказа WooCommerce как «Выполнен» для виртуальных продуктов.

а) Шаги для автоматической установки статуса заказа WooCommerce как завершенного в зависимости от способа оплаты

Вот простые шаги, которые вам необходимо выполнить:

  1. Войдите на свой сайт WordPress и получите доступ к панели инструментов в качестве пользователя-администратора.
  2. В меню «Панель инструментов» нажмите « Меню внешнего вида» > «Меню редактора тем». Когда откроется страница редактора тем, найдите файл функций темы, в который мы добавим функцию, которая автоматически установит статус заказа woocommerce как завершенный в зависимости от способа оплаты.
  3. Добавьте следующий код в файл php :
 /**

Фрагмент для автоматической установки статуса заказа woocommerce как завершенного в зависимости от способа оплаты

*/

add_action('woocommerce_order_status_changed', 'njengah_auto_complete_by_payment_method');

функция njengah_auto_complete_by_payment_method($order_id)

{

если ( ! $order_id ) {

возвращение;

}

глобальный $продукт;

$order = wc_get_order($order_id);

if ($order->data['status'] == 'в обработке') {

$payment_method=$order->get_payment_method();

если ($payment_method!="bacs")

{

$order->update_status('завершено');

}

}

}
  1. Чтобы увидеть результат, перейдите на панель инструментов WordPress и нажмите WooCommerce > Orders . Вы увидите, что заказ был установлен как Завершенный , как показано ниже: утвержденный заказ

Как работает код

В приведенном выше коде я использовал хук woocommerce_order_status_changed для вызова функции при изменении статуса заказа. Он проверяет, имеет ли заказ статус «В обработке» и меняет его на «Выполнен».

По умолчанию WooCommerce имеет четыре способа оплаты по умолчанию: прямой банковский перевод (bacs), чековые платежи (чек), наложенный платеж (наложенный платеж) и PayPal (PayPal). Однако вам необходимо указать способ оплаты, для которого вы устанавливаете условие.

б) Шаги для автоматической установки статуса заказа WooCommerce как завершенного для виртуальных продуктов

загружаемый продукт: Автоматическое одобрение заказов WooCommerce Вот шаги, которые вам необходимо выполнить:

  1. Войдите на свой сайт WordPress и получите доступ к панели инструментов в качестве пользователя-администратора.
  2. В меню «Панель инструментов» нажмите « Меню внешнего вида» > «Меню редактора тем». Когда откроется страница редактора тем, найдите файл функций темы, в который мы добавим функцию, которая автоматически установит статус заказа woocommerce как завершенный для виртуальных продуктов.
  3. Добавьте следующий код в файл php :
 /**

Фрагмент для автоматической установки статуса заказа woocommerce как завершенного для виртуальных продуктов

*/

add_action('woocommerce_order_status_changed', 'njengah_auto_complete_virtual');

функция njengah_auto_complete_virtual($order_id)

{

если ( ! $order_id ) {

возвращение;

}

глобальный $продукт;

$order = wc_get_order($order_id);

if ($order->data['status'] == 'в обработке') {

$virtual_order = ноль;

если (количество($order->get_items()) > 0) {

foreach($order->get_items() as $item) {

если ( 'line_item' == $item['type'] ) {

$_product = $order->get_product_from_item($item);

если ( ! $_product->is_virtual() ) {

// как только мы найдем один не виртуальный продукт, выходим из цикла

$virtual_order = ложь;

ломать;

}

еще {

$virtual_order = истина;

}

}

}

}




// если все виртуальные товары, пометить как завершенные

если ($virtual_order) {

$order->update_status('завершено');

}

}

}

  1. Результат будет таким же, как и в первом примере, так как заказ будет автоматически установлен как Completed .

Как работает код

В приведенном выше коде я использовал тот же хук для вызова функции njengah_auto_complete_virtual. После того, как он проверил, находится ли товар в состоянии «Обработка», код просматривает каждый элемент по порядку, чтобы увидеть, есть ли виртуальный продукт.

Line_item относится к продукту, и только продукты должны быть получены один за другим, чтобы проверить, являются ли они виртуальными. Если виртуального товара нет, статус заказа не будет помечен как Выполненный.

Вывод

В этом кратком руководстве я рассказал, как вы можете автоматически установить статус заказа WooCommerce как «Выполнен». Я сделал это на основе способа оплаты и для виртуальных продуктов.

Однако, в зависимости от требований, предъявляемых к вашему магазину, с помощью первого фрагмента кода вы можете добавить дополнительные условия, чтобы отметить статус заказа как «Выполнен». Например, если оплата была произведена, вы можете пометить Статус заказа как Завершенный даже для невиртуальных продуктов, добавив галочку в способе оплаты после того, как он проверит, является ли это виртуальным продуктом.

Однако с помощью этого фрагмента кода статус заказа будет установлен как «Выполнен» только в том случае, если все продукты в заказе являются виртуальными продуктами. Я надеюсь, что этот пост предоставил решение для автоматического утверждения заказов в WooCommerce.

Похожие статьи