Автоматическое присвоение заказам статуса «Выполнен»

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

автовыполнение заказов в WooCommerce

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

Но иногда это не нужно, например для виртуальных товаров, да даже для физических не всегда. А потом в один моментам клиентам надоедает вручную завершать заказы, и они копятся в уведомлениях тут:

заказы в меню WordPress

Сейчас покажу вам сниппет кода, который при вставке в functions.php вашей текущей (например дочерней) темы позволит завершать заказы сразу после их оформления.

Также хочу напомнить и порекомендовать вам свой видеокурс по WooCommerce 🚀

add_action( 'woocommerce_thankyou', 'truemisha_complete_orders' );
 
function truemisha_complete_orders( $order_id ) { 
	if ( ! $order_id ) {
		return;
	}
 
	$order = wc_get_order( $order_id );
	$order->update_status( 'completed' );
}

Взял этот пример с официальной документации WooCommerce и лично я сам не уверен на 100% относительно используемого тут хука woocommerce_thankyou, потому что возможно при оплате некоторыми платёжными шлюзами, покупатель может до неё не дойти.

И поэтому я нашёл кое-что поинтереснее. И судя по названию, этот фильтр-хук предназначен именно для нашей цели!

add_filter( 'woocommerce_payment_complete_order_status', 'truemisha_complete_orders_2', 25, 2 );
 
function truemisha_complete_orders_2( $order_id, $order ) {
	return false; // false – Выполнен, true - Обработка
}

Также внутри этой функции можете добавить своих условий, ведь вам доступен ID заказа $order_id и объект заказа $order.

Миша

В последние годы я долго не знал, что мне делать с сайтом misha.blog, ведь он практически не приносит никакого профита, но недавно я осознал, что моя миссия – способствовать распространению WordPress. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.

Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда сделаем вам всё на лучшем уровне.