我需要将所有“暂停”的 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' );
虽然状态发生变化,但仍会发送“暂停”电子邮件通知,尽管它应该只是“正在处理”电子邮件通知。
有什么建议吗?
只要付款未完成,订单就会处于保留状态。要立即将某些付款方式的默认订单状态更改为处理(并跳过暂停状态)并发送处理电子邮件通知,您可以使用:
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 );
这些过滤器会使状态更改为所需的状态。邮件通知将根据此自动发送
我将此代码放入我的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 的订单状态仍处于待付款状态,而不是处于暂停状态。
可能是什么错误?