【发布时间】:2016-08-26 10:57:01
【问题描述】:
我需要在收到付款后自动将订单状态更改为已完成,但前提是订单状态为“处理中”。我发现 sn-p,是什么使订单状态在每种情况下都完成,但是我的付款插件在成功更改付款后返回数据并更改订单状态以进行“处理”。我想在成功后将其更改为“已完成”,如果状态不是“正在处理”,请不要更改它。我遇到的主要问题是我不知道如何获取收到的状态订单。
这是我的代码:
add_filter( 'woocommerce_thankyou', 'update_order_status', 10, 2 );
function update_order_status( $order_id ) {
$order = new WC_Order( $order_id );
$order_status = $order->get_status();
if ('processing' == $order_status) {
$order->update_status( 'completed' );
}
//return $order_status;
}
编辑:
我已经想通了。这是对我有用的代码:
add_filter( 'woocommerce_thankyou', 'update_order_status', 10, 1 );
function update_order_status( $order_id ) {
if ( !$order_id ){
return;
}
$order = new WC_Order( $order_id );
if ( 'processing' == $order->status) {
$order->update_status( 'completed' );
}
return;
}
【问题讨论】:
-
我为代码格式编辑了您的帖子,但有一个错字。 $oder_status
-
谢谢,错字也更正了。
标签: php wordpress woocommerce payment-gateway orders