将Woocommerce中的待处理订单状态更改为未付款的管理员付款状态

时间:2018-09-17 11:13:27

标签: php wordpress woocommerce metadata

当Woocommerce中的订单状态更改为处理时,付款状态将设置为已付费

但是订单被意外设置为正在处理,因此不应获得状态已付款。现在,当我们再次将状态设置为待处理时,它不会删除文本:

  

订单#1234的详细信息
  通过采购订单付款。 2018年9月17日上午9:18支付

您知道如何将文本更改为更改状态之前的内容吗?

1 个答案:

答案 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

相关问题