Имеется сайт продажи контента по подписке используя рекуррентные платежи + плагин Woocommerce версии 4.1.1.
Проблема: После оплаты подписки статус заказа Woocommerce переходит в статус «В обработке», и приходится в ручную менять на статус заказа на «Выполнен» для активации подписки и предоставления клиенту доступа к контенту.
Требуется, чтобы статус заказа(после оплаты) автоматически менялся на «Выполнен», минуя статус «В обработке».
После ресёрча по интернету нашел несколько готовых функций, но они, к сожалению, не работают.
Пример:
function wc_mark_all_orders_as_complete($order_status, $order_id) {
$order = new WC_Order($order_id);
if ($order_status == 'processing' && ( $order->status == 'on-hold' || $order->status == 'pending' || $order->status == 'failed' )) {
return 'completed';
}
return $order_status;
}
add_filter('woocommerce_payment_complete_order_status', 'wc_mark_all_orders_as_complete', 10, 2);
Также пытался использовать плагины для автоматической смены статусов заказа - всё тщетно. Заказам, после успешной оплаты, всегда присваивается статус «В обработке».