WooCommerce-使用php代码更改订单状态

WooCommerce-使用php代码更改订单状态,php,class,object,field,woocommerce,Php,Class,Object,Field,Woocommerce,我正试图在WooCommerce中更改订单状态,但到目前为止我没有遇到任何运气$订单实例创建成功(我知道这是因为echo$order->status;工作正常,$order\u id也正确。$order->status='pending';根本没有改变任何东西,我不知道为什么 $order = new WC_Order($order_id); $order->status = 'pending'; 有人能帮我吗?试试下面的代码: $order = new WC_Order($order_

我正试图在WooCommerce中更改订单状态,但到目前为止我没有遇到任何运气$订单实例创建成功(我知道这是因为
echo$order->status;
工作正常,$order\u id也正确。
$order->status='pending';
根本没有改变任何东西,我不知道为什么

$order = new WC_Order($order_id);
$order->status = 'pending';
有人能帮我吗?

试试下面的代码:

$order = new WC_Order($order_id);
$order->update_status('pending', 'order_note'); // order note is optional, if you want to  add a note to order

由于Woocommerce版本3.0+要更新状态,您需要执行此操作

$order = wc_get_order( $order_id );

if($order){
   $order->update_status( 'pending', '', true );
}

使用
woocommerce v4.4
,其他答案对我不适用。我必须这样做

$order = wc_get_order($order_id);
$order->set_status('pending');
$order->save();

注意:Woocommerce在内部添加了
wc
前缀,如果您在数据库中查看,您将看到它。我们不需要显式添加它。

我将在明天检查此代码,并将此答案标记为正确,如果有效:)。致命错误:调用成员函数get\u order()在/public_html/wp content/plugins/woocommerce/includes/wc-order-functions.php中的非对象上联机54@itskawsar这意味着找不到订单,可能是错误的$order\u id它修改的文件是什么?@Dario此处的代码将订单的状态保存在数据库中。它不会修改文件。@johnmcarthy你是对的!