立即在 WooCommerce 中将暂停订单设置为处理并发送处理电子邮件通知

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

我需要将所有“暂停”的 WooCommerce 订单设置为“处理”,并立即发送订单处理电子邮件。

我试过这个

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

$order = wc_get_order( $order_id );
if( 'on-hold'== $order->get_status() ) {
    $order->update_status( 'processing' );
}
}
add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_order' );

虽然状态发生变化,但仍会发送“暂停”电子邮件通知,尽管它应该只是“正在处理”电子邮件通知。

有什么建议吗?

php wordpress woocommerce orders email-notifications
2个回答
2
投票

只要付款未完成,订单就会处于保留状态。要立即将某些付款方式的默认订单状态更改为处理(并跳过暂停状态)并发送处理电子邮件通知,您可以使用:

  • Bacs -
    woocommerce_bacs_process_payment_order_status
    过滤钩
  • 支票 -
    woocommerce_cheque_process_payment_order_status
    过滤钩
  • 鳕鱼 -
    woocommerce_cod_process_payment_order_status
    过滤钩

所以你得到:

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

这些过滤器会使状态更改为所需的状态。邮件通知将根据此自动发送


0
投票

我将此代码放入我的functions.php子主题中:

    add_filter('woocommerce_wompi_process_payment_order_status','cambiar_estado_pedidos_wompi', 9999, 2 );
function cambiar_estado_pedidos_wompi( $status, $order ) {
return 'on-hold';          
}  

网关支付名为:wompi

但这不起作用。 Wompi 的订单状态仍处于待付款状态,而不是处于暂停状态。

可能是什么错误?

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