为了那个原因
的
在更新之前
</强>
订单状态
$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’ );
}
}
</code>
代码位于活动子主题(或活动主题)的function.php文件中。经过测试和工作。
的
用法
</强>
- 然后,您现在可以使用以下IF语句之一
<EM>
(订单ID)
</EM>
:
if( get_post_meta( $order_id, ‘_old_status’, true ) !== ‘in-progress’ ) {
// Your code
}
</code>
要么
(使用订单对象)
:
if( $order->get_meta(‘_old_status’) !== ‘in-progress’ ) {
// Your code
}
</code>