当前位置: 首页 > 知识库问答 >
问题:

在Woocommerce中自动变更订单状态从处理到完成

令狐宏伟
2023-03-14

如果‘处理’状态将自动更新为‘完成’,我想从woocommerce更改每个订单.

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

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

我使用了这个代码,但它没有效果


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

感谢的

共有1个答案

艾跃
2023-03-14

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

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

 类似资料:
  • 我有一个虚拟产品,我希望它改变状态后付款完成。下面的代码将所有购买更改为“已完成”,但我只想更改我的一个产品,而不是全部。我的产品是一个可变产品, 我找了很多,但没有找到答案。请帮帮我.谢谢

  • 我想自动完成刚刚成功支付订单“完成”状态。我在Stack和Google上搜索了很多,找到了这个答案代码: Woocommerce:Auto complete Payed Orders(取决于支付方式) 但问题是,代码将所有下订单标记为“完成”状态,而不取决于订单是否成功下订单。 我需要在代码中更改什么,以便将只支付的订单自动转换为“已完成”状态?

  • 我在我的WooCommerce安装中创建了一个自定义订单状态,称为Quote。 现在我想收到一封电子邮件,每当收到一个订单,已经给出了状态栏。我根据这篇有用的文章创建了一个插件:http://www.skyverge.com/blog/how-to-add-a-custom-woocommerce-email/ 我的插件基本上是从文章复制的,我只是更改了电子邮件的内容。我想改变的是什么触发了电子邮

  • 在WooCommerce中,当订单处于处理状态时,我希望在“我的帐户”页面上显示一个操作按钮,允许客户通过更改订单状态以完成来确认订单已经到达。 我已经看到允许客户通过电子邮件相关的问题代码改变订单的状态(没有答案),这并没有真正帮助实现我的目标。 客户是否可以通过将订单状态更改为“已完成”来确认订单是否已到达?

  • 问题内容: 通常,wooCommerce应该自动完成虚拟产品的订单。但是事实并非如此,这是一个实际的问题,即使是BUG之类的。 因此,在这一点上,您可以找到一些有用的东西(但不是很方便): 1)一段代码 (您可以在wooCommerce文档中找到): 但是此代码段不适用于 BACS , 货到付款 和 支票* 付款方式。Paypal和信用卡网关的付款方式都可以。 BACS 是直接银行转帐付款方式 还

  • 当客户通过Ajax单击thank you页面上的一个按钮时,我正在尝试将woocommerce订单的状态从processing更改为completed。 我的代码如下: 和我的functions.php中的php 我知道ajax在没有语句的情况下可以正常工作,但使用它,我会得到一个500内部服务器错误。我还知道,如果我不使用ajax并将其挂到thank you页面中,那么它就会毫无问题地更改状态。