当Woocommerce中的订单状态更改为处理时,付款状态将设置为已付费:
但是订单被意外设置为正在处理,因此不应获得状态已付款。现在,当我们再次将状态设置为待处理时,它不会删除文本:
订单#1234的详细信息
通过采购订单付款。 2018年9月17日上午9:18支付
您知道如何将文本更改为更改状态之前的内容吗?
答案 0 :(得分:1)
使用以下代码将重置(空)支付日期,因此它将删除支付消息。
因此,每当状态为“处理中”,“已完成”或“待定”的订单返回到“待处理”状态时,付款日期都会被取消。
代码:
add_action( 'woocommerce_order_status_changed', 'reset_order_paid_date', 20, 4 );
function reset_order_paid_date( $order_id, $old_status, $new_status, $order ){
if ( in_array( $old_status, array('on-hold', 'processing', 'completed') ) && $new_status == 'pending' ) {
$order->set_date_paid(null);
$order->save();
}
}
代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。
要使其对有问题的订单有效,请仅运行以下代码一次,并将其粘贴到 function.php 子主题的文件中。然后浏览您网站的任何页面并将其删除...
(其中123
是您必须用订单ID替换的订单ID)$order = wc_get_order( 123 ); // <== HERE set your order number $order->set_date_paid(null); $order->save();
相关:Set back date paid on paid order statuses change in WooCommerce