Как отключить оплату на странице подтверждения заказа и изменить статус заказа после его размещения в магазине на базе WooCommerce с использованием WordPress

Введение:

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

Данная статья может помочь и тем у кого возникает ошибка в оплате «Неправильный способ оплаты«

Часть 1. Отключение выбора оплаты на странице подтверждения заказа.

Если в вашем магазине используется способ оплаты, который предполагает подтверждение заказа с последующей обработкой оплаты (например, оплата по счету или предоплата), вы можете отключить выбор оплаты на странице подтверждения заказа с помощью следующего кода:

/* Отключить выбор оплаты на странице подтверждения заказа */
add_filter('woocommerce_cart_needs_payment', '__return_false');

Этот фильтр позволяет отключить выбор оплаты на странице подтверждения заказа. Функция __return_false в данном случае используется для того, чтобы перехватить значение, передаваемое по умолчанию, и заменить его на false, тем самым отключая оплату на странице подтверждения заказа.

Часть 2. Изменение статуса заказа после его размещения.

После того, как посетитель разместит заказ на вашем сайте, статус заказа по умолчанию изменится на «Обработка». Если вы хотите изменить статус заказа на «Ожидание оплаты» после его размещения, что логичнее, используйте следующий код:

/* Меняем статус "Обработка" на статус "Ожидание оплаты" после заказа посетителем */
add_action( 'woocommerce_thankyou', 'wplife_change_order_status_to_pending' );
function wplife_change_order_status_to_pending( $order_id ){
if ( ! $order_id ) {
return;
}
$order = wc_get_order( $order_id );
if ( $order ) {
$order->update_status( 'wc-pending' );
}
}

Данный код регистрирует функцию wplife_change_order_status_to_pending, которая вызывается после успешного размещения заказа и изменяет статус заказа на «Ожидание оплаты». Функция принимает параметр $order_id, который является идентификатором размещенного заказа.

Прежде всего, в функции проверяется, что идентификатор заказа действителен и не пуст. Если идентификатор пуст, функция прекращает свою работу и возвращает значение по умолчанию (независимо от статуса заказа). Затем с помощью функции wc_get_order получаем объект заказа. Если объект заказа существует, функция update_status вызывается с параметр wc-pending, что приводит к изменению статуса заказа на «Ожидание оплаты».

Заключение:

Отключение выбора оплаты на странице подтверждения заказа и изменение статуса заказа после его размещения — важные аспекты работы интернет-магазина. В данной статье мы подробно рассмотрели как достичь этих задач с помощью кода.

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

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Пролистать наверх