Php 更改“货到付款”的商业订单状态

Php 更改“货到付款”的商业订单状态,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我需要更改Woocommerce应用于以货到付款的订单的默认订单状态。默认值是processing,我需要将其设置为on hold。我试过这个 add_action( 'woocommerce_thankyou', 'my_order_status', 50 ); function my_order_status( $order_id ) { if ( ! $order_id ) { return; } $order = wc_get_order(

我需要更改Woocommerce应用于以货到付款的订单的默认订单状态。默认值是processing,我需要将其设置为on hold。我试过这个

    add_action( 'woocommerce_thankyou', 'my_order_status', 50 );
    function my_order_status( $order_id ) {
    if ( ! $order_id ) {
    return;
    }
    $order = wc_get_order( $order_id );
    if ( ( get_post_meta( $order->id, '_payment_method', true ) == 'cod'  ) && ( $order->status == 'processing' ) ) {
    $order->update_status('on-hold');
    }
    }

但它不起作用。有什么想法吗?

要解决此问题,请使用以下代码:

add_action( 'woocommerce_thankyou', 'wc_change_status' );
function wc_change_status( $order ) {

        $order = new WC_Order($order);
        $order->update_status('on-hold', 'This is the change status');
        //print('<pre>');
      //  print_r($order);
       }
add_action('woocommerce_thankyou','wc_change_status');
功能wc_变更_状态($order){
$order=新WC_订单($order);
$order->update_status('待决','这是变更状态');
//打印(“”);
//打印(订单);
}

要解决此问题,请使用以下代码:

add_action( 'woocommerce_thankyou', 'wc_change_status' );
function wc_change_status( $order ) {

        $order = new WC_Order($order);
        $order->update_status('on-hold', 'This is the change status');
        //print('<pre>');
      //  print_r($order);
       }
add_action('woocommerce_thankyou','wc_change_status');
功能wc_变更_状态($order){
$order=新WC_订单($order);
$order->update_status('待决','这是变更状态');
//打印(“”);
//打印(订单);
}
这解决了我的问题

把它放到你的函数中。php

这解决了我的问题


把这个放在你的函数中。php

非常感谢!非常感谢你!