【发布时间】:2019-02-21 07:15:28
【问题描述】:
当 Woocommerce 中的订单状态更改为处理中时,付款状态设置为已付款:
但订单被意外设置为处理中,不应该获得已付款状态。现在,当我们再次将状态设置为挂起时,它不会删除文本:
订单 #1234 详情
通过采购订单付款。于 2018 年 9 月 17 日上午 9:18 支付
知道如何将此文本更改为状态更改之前的内容吗?
【问题讨论】:
标签: php wordpress woocommerce metadata
当 Woocommerce 中的订单状态更改为处理中时,付款状态设置为已付款:
但订单被意外设置为处理中,不应该获得已付款状态。现在,当我们再次将状态设置为挂起时,它不会删除文本:
订单 #1234 详情
通过采购订单付款。于 2018 年 9 月 17 日上午 9:18 支付
知道如何将此文本更改为状态更改之前的内容吗?
【问题讨论】:
标签: php wordpress woocommerce metadata
使用以下代码将重置(清空)付费日期,因此它将删除付费消息。
因此,每次将状态为“处理中”、“已完成”或“暂停”的订单转回“待处理”状态时,付款日期都会被清空。
代码:
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
【讨论】: