【问题标题】:Auto change order status from processing to completed in Woocommerce在 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 当我收到用户的付款时

标签: wordpress woocommerce


【解决方案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的在线支付
猜你喜欢
  • 2022-10-14
  • 2018-08-01
  • 2020-08-11
  • 2023-01-28
  • 2020-02-19
  • 2016-04-17
  • 1970-01-01
  • 2017-04-23
  • 2016-08-04
相关资源
最近更新 更多