Я использую в WooCommerce этот небольшой кусочек кода из этого ответа для автозаполнения платных заказов на обработку:
/**
* AUTO COMPLETE PAID ORDERS IN WOOCOMMERCE
*/
add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_paid_order', 10, 1 );
function custom_woocommerce_auto_complete_paid_order( $order_id ) {
if ( ! $order_id ) {
return;
}
$order = wc_get_order( $order_id );
// No updated status for orders delivered with Bank wire, Cash on delivery and Cheque payment methods.
if ( ( get_post_meta($order->id, '_payment_method', true) == 'bacs' ) || ( get_post_meta($order->id, '_payment_method', true) == 'cod' ) || ( get_post_meta($order->id, '_payment_method', true) == 'cheque' ) ) {
return;
}
// "completed" updated status for paid Orders with all others payment methods
else {
$order->update_status( 'completed' );
}
}
Но проблема в том, что я использую специальный платежный шлюз по SMS, API которого соединяется с методом оплаты «cod», и заказы иногда остаются в состоянии ожидания на этом хуке «woocommerce_thankyou».
Поэтому мне нужно будет постоянно сканировать заказы на «обработку», чтобы передать их в полном статусе. Я пробовал разные вещи и хуки, но не могу заставить их работать должным образом.
Как я могу это сделать?
Спасибо