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

Auto change order status from hold-on to processing in Woocommerce

我想更改 每个 订购 状态为 'HOLD-ON' 到 'PROCESSING' 和 php

我已经尝试在 functions.php 文件中编写一个函数 但我失败了。

如何在 Woocommerce 中将订单状态从 "hold-on" 自动更改为 "processing"?

要 auto-process 订单,您应该尝试以下操作:

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

    $order = wc_get_order( $order_id );

    // If order is "on-hold" update status to "processing"
    if( $order->has_status( 'on-hold' ) ) {
        $order->update_status( 'processing' );
    }
}

代码进入您活跃的子主题(或主题)的 function.php 文件。

add_action('woocommerce_order_status_changed', 'ts_auto_complete_by_payment_method');

function ts_auto_complete_by_payment_method($order_id)
{

if ( ! $order_id ) {
return;
}

global $product;
$order = wc_get_order( $order_id );

if ($order->data['status'] == 'on-hold') {
$payment_method=$order->get_payment_method();
if ($payment_method!="COD")  // change payment method 
{
$order->update_status( 'processing' );
}}}

将代码添加到子主题的 functions.php 文件或通过允许添加自定义函数的插件,例如代码片段插件。避免将自定义代码直接添加到父主题的 functions.php 文件中,因为这将在您更新主题时被完全擦除。

您还可以将“已完成”状态更改为其他订单状态,例如“处理中”

   **
* Auto Complete all WooCommerce orders.
*/
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 );
   $order->update_status( 'processing' );
} ```