WooCommerce-当操作发生时完成订单

时间:2015-11-02 作者:Andrew Adam

我在WooCommerce和自定义帖子类型/自定义字段方面遇到问题。

我有一个应用程序,其中一个新的WooCommerce订单会自动创建一个新帖子(CPT=“audits”)。该帖子有一些自定义字段、订单号(预填充WooCommerce订单号)和状态(下拉列表中有4个选项)。

我的目标是,当帖子状态更改为“完成”(从“进行中”或任何其他状态)时,WooCommerce订单将自动更改为“完成”。

以下是我目前正在尝试但运气不佳的代码:

function my_change_status_function () {     
    global $post;
    $ordernumber = get_post_meta( $post->ID, \'order_number\', true );
    $audit_status = get_post_meta( $post->ID, \'audit_status\', true );    
    if ( $audit_status == \'Complete\' ) {   
        return;
        $order = new WC_Order( $ordernumber );
        $order->update_status( \'completed\' ); 
    }    
}
add_action( \'save_post_audits\', \'my_change_status_function\' );

1 个回复
SO网友:Gabriel

去除return; 在执行以下两行代码之前过早退出函数;这就是为什么状态没有改变。

function my_change_status_function () {     
    global $post;
    $ordernumber = get_post_meta( $post->ID, \'order_number\', true );
    $audit_status = get_post_meta( $post->ID, \'audit_status\', true );    
    if ( $audit_status == \'Complete\' ) {   
        $order = new WC_Order( $ordernumber );
        $order->update_status( \'completed\' ); 
    }    
}
add_action( \'save_post_audits\', \'my_change_status_function\' );

相关推荐