在 Woocommerce 中自动将订单状态从处理更改为完成

Posted

技术标签:

【中文标题】在 Woocommerce 中自动将订单状态从处理更改为完成【英文标题】:Auto change order status from processing to completed in Woocommerce 【发布时间】:2019-06-01 22:46:05 【问题描述】:

如果“正在处理”状态将自动更新为“已完成”,我想更改来自 woocommerce 的每个订单。

我尝试在functions.php文件中编写函数,但没有成功。

收到用户付款后,如何在 Woocommerce 中自动将订单状态从“处理中”更改为“已完成”?

我用了这段代码,但是没有效果

add_action('woocommerce_thankyou', 'custom_woocommerce_auto_complete_order'); 功能 custom_woocommerce_auto_complete_order( $order_id ) 如果(!$order_id) 返回; $order = wc_get_order($order_id); if($order->has_status('处理')) $order->update_status('完成');

谢谢

【问题讨论】:

您想何时将处理转换为已完成?在感谢页面上还是要运行一项 cron 作业? 以下答案对你有用吗? @prateik-darji 它对我不起作用。您还有其他解决方案吗? @dipmala 当我收到用户的付款时 【参考方案1】:

要自动完成订单,您应该尝试以下操作:

add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_order' );
    function custom_woocommerce_auto_complete_order( $order_id )  
        if ( ! $order_id ) 
            return;
        

        $order = wc_get_order( $order_id );

        if( $order->has_status( 'processing' ) ) 
            $order->update_status( 'completed' );
        
    

代码进入您的活动子主题(或主题)的 function.php 文件中。我已经测试了代码及其对我的工作,请查看屏幕截图https://prnt.sc/m3zrwp

【讨论】:

嗨@developerme,我已经添加了代码,但状态没有立即更改为已完成。还有什么问题吗? link 您是否安装了其他插件?它对我有用,我已经测试了这段代码 此代码是否仅适用于 woocommerce 的付款方式?因为我使用另一种付款方式,他们仅在付款完成后将状态从“暂停”更新为“处理中”,然后我们将一个一个更新为“已完成”。 您使用哪种付款方式? 我正在使用midtrans的在线支付

以上是关于在 Woocommerce 中自动将订单状态从处理更改为完成的主要内容,如果未能解决你的问题,请参考以下文章

在 WooCommerce 中自动处理已付款订单而不是自动完成

WooCommerce 中所有现有处理订单的自动完成状态

WooCommerce 更改订单状态 BACS 处理

WooCommerce 订单状态(自动完成订单)

将默认 WooCommerce 订单状态更改为处理支票和银行付款

向管理员发送电子邮件通知,了解 WooCommerce 中的待处理订单状态