在 Woocommerce 中自动将订单状态从处理更改为完成
Posted
技术标签:
【中文标题】在 Woocommerce 中自动将订单状态从处理更改为完成【英文标题】:Auto change order status from processing to completed in Woocommerce 【发布时间】:2019-06-01 22:46:05 【问题描述】:如果“正在处理”状态将自动更新为“已完成”,我想更改来自 woocommerce 的每个订单。
我尝试在functions.php文件中编写函数,但没有成功。
收到用户付款后,如何在 Woocommerce 中自动将订单状态从“处理中”更改为“已完成”?
我用了这段代码,但是没有效果
add_action('woocommerce_thankyou', 'custom_woocommerce_auto_complete_order'); 功能 custom_woocommerce_auto_complete_order( $order_id ) 如果(!$order_id) 返回; $order = wc_get_order($order_id); if($order->has_status('处理')) $order->update_status('完成');谢谢
【问题讨论】:
您想何时将处理转换为已完成?在感谢页面上还是要运行一项 cron 作业? 以下答案对你有用吗? @prateik-darji 它对我不起作用。您还有其他解决方案吗? @dipmala 当我收到用户的付款时 【参考方案1】:要自动完成订单,您应该尝试以下操作:
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
【讨论】:
嗨@developerme,我已经添加了代码,但状态没有立即更改为已完成。还有什么问题吗? link 您是否安装了其他插件?它对我有用,我已经测试了这段代码 此代码是否仅适用于 woocommerce 的付款方式?因为我使用另一种付款方式,他们仅在付款完成后将状态从“暂停”更新为“处理中”,然后我们将一个一个更新为“已完成”。 您使用哪种付款方式? 我正在使用midtrans的在线支付以上是关于在 Woocommerce 中自动将订单状态从处理更改为完成的主要内容,如果未能解决你的问题,请参考以下文章
在 WooCommerce 中自动处理已付款订单而不是自动完成