Для этого перед обновлением статуса заказа с помощью $order->update_status( 'wc-completed' );
вам нужно будет добавить вид истории статуса для каждого события изменения статуса, используя следующую команду:
add_action( 'woocommerce_order_status_changed', 'grab_order_old_status', 10, 4 );
function grab_order_old_status( $order_id, $status_from, $status_to, $order ) {
if ( $order->get_meta('_old_status') ) {
// Grab order status before it's updated
update_post_meta( $order_id, '_old_status', $status_from );
} else {
// Starting status in Woocommerce (empty history)
update_post_meta( $order_id, '_old_status', 'pending' );
}
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.
USAGE - Теперь вы можете использовать один из следующих операторов IF (с идентификатором заказа) :
if( get_post_meta( $order_id, '_old_status', true ) !== 'in-progress' ) {
// Your code
}
Или (с Объектом заказа) :
if( $order->get_meta('_old_status') !== 'in-progress' ) {
// Your code
}