Php 在woocommerce中设置自定义订单状态

Php 在woocommerce中设置自定义订单状态,php,wordpress,woocommerce,status,orders,Php,Wordpress,Woocommerce,Status,Orders,我已遵循并添加了自定义订单状态“等待装运”: 我的问题是,我正试图通过php函数更新状态,但它仍然停留在等待付款设置!因此,它正在执行和更改正确的顺序,而不是使用此新状态 我的代码: $order = new WC_Order($order_id); $order->update_status('Awaiting shipment', 'order_note'); 我可以在WordPress仪表板中设置“等待发货”ok 我做错了什么?您需要使用slug等待发货来设置它,这样您的代码将是:

我已遵循并添加了自定义订单状态“等待装运”:

我的问题是,我正试图通过php函数更新状态,但它仍然停留在等待付款设置!因此,它正在执行和更改正确的顺序,而不是使用此新状态

我的代码:

$order = new WC_Order($order_id);
$order->update_status('Awaiting shipment', 'order_note');
我可以在WordPress仪表板中设置“等待发货”ok


我做错了什么?

您需要使用slug
等待发货来设置它,这样您的代码将是:

$order = new WC_Order( $order_id );
$order->update_status('awaiting-shipment', 'order_note');
这一次它会起作用

另外,
“订单注释”
是可选的,应该像订单注释一样用真正的显式文本替换

要完成此任务,还可以使用
$order=wc\u get\u order($order\u id)

参考:

相关线程:

请尝试下面的方法

add_action( 'woocommerce_thankyou', 'my_custom_status_update' );

function my_custom_status_update( $order_id ) {

    $order = new WC_Order( $order_id );
    $order->update_status( 'awaiting-shipment' );

}