更改货到付款的Woocommerce订单状态

时间:2016-11-04 11:18:08

标签: php wordpress woocommerce

我需要更改Woocommerce应用于通过货到付款支付的订单的默认订单状态。默认是处理,我需要将其设置为暂停。我试过这个

    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');
    }
    }

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

2 个答案:

答案 0 :(得分:2)

这解决了我的问题

add_action('woocommerce_thankyou_cod', 'action_woocommerce_thankyou_cod', 10, 1);
function action_woocommerce_thankyou_cod($order_id)
{
 $order = wc_get_order($order_id);
 $order->update_status('on-hold');
}

将其放入您的functions.php

答案 1 :(得分:0)

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

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);
       }