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

问题描述 投票:1回答:2

在WooCommerce中,我需要所有订单立即进入“处理”状态,以便在处理订单时直接发送订单处理电子邮件。

默认情况下,此行为适用于Paypal和COD订单,但不适用于BACS和检查默认状态为on-hold的位置。

我尝试了几个像这样的片段:

add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_process_order' );

function custom_woocommerce_auto_process_order( $order_id ) { 
    if ( ! $order_id ) {
       return;
    }

    $order = wc_get_order( $order_id );
    $order->update_status( 'processing' );
}

但这不起作用,订单仍然显示在“暂停”状态,并且不会发送处理电子邮件通知。现在我刚刚找到了这个片段:

add_filter( 'woocommerce_bacs_process_payment_order_status', function( $status = 'on_hold', $order = null ) {
    return 'processing';
}, 10, 2 );

它有效,但仅适用于“BACS”。如何使其适用于“检查”订单?

php wordpress woocommerce orders payment-method
2个回答
1
投票

过滤器钩子woocommerce_cheque_process_payment_order_status尚未在Woocommerce 3.5.7中实现...如果您查看位于您的woocommerce插件中的文件: includes> gateways> cheque> class-wc-gateway-cheque.php,钩子缺失(线122):

$order->update_status( 'on-hold', _x( 'Awaiting check payment', 'Check payment method', 'woocommerce' ) );

但是对于class-wc-gateway-cheque.php file的Github WC版本3,5,7,钩子存在(行122):

$order->update_status( apply_filters( 'woocommerce_cheque_process_payment_order_status', 'on-hold', $order ), _x( 'Awaiting check payment', 'Check payment method', 'woocommerce' ) );

该计划将在下一个WooCommerce 3.6版本see the file change on Woocommerce Github上提供。它被标记为3.6.0-rc.23.6.0-beta.1

因此,可以使用以下内容将默认订单状态更改为“处理”“bacs”和“检查”付款方式:

add_filter( 'woocommerce_bacs_process_payment_order_status','filter_process_payment_order_status_callback', 10, 2 );
add_filter( 'woocommerce_cheque_process_payment_order_status','filter_process_payment_order_status_callback', 10, 2 );
function filter_process_payment_order_status_callback( $status, $order ) {
    return 'processing';
}

代码位于活动子主题(或活动主题)的function.php文件中。


0
投票

你快到了。现在你正在为BACS钩添加一个过滤器。 Cheque付款方式有一个类似的钩子。

只需添加以下代码:

add_filter( 
  'woocommerce_cheque_process_payment_order_status',
  function( $status = 'on_hold', $order = null ) {
    return 'processing';
  }, 10, 2
);

它完全相同,但仅适用于Cheque订单。

© www.soinside.com 2019 - 2024. All rights reserved.