Всё оказалось довольно просто:
К примеру можно сделать так:
function receipt_page($order_id) {
global $woocommerce;
$this->order = new WC_Order($order_id);
// если заказ не помечен как готовый к оплате, то меняем статус на "Обработка" и перекидываем на страницу с уведомлением!
if (get_post_meta( $this->order->id, 'ready_to_pay', true) != 1) {
$woocommerce->cart->empty_cart();
$this->order->update_status('processing');
wp_redirect( home_url( '/' ) ); // заменить на URL-адрес страницы с текстом: "Ваш заказ поступил в обработку..."
return false;
}
и далее если статус заказа меняется на "Ожидает оплаты", то:
add_action( 'woocommerce_order_status_pending', function ($order_id) {
update_post_meta( $order_id, 'ready_to_pay', 1);
});