您可以通过以下代码示例来保留并获取Woocommerce 3中的订单状态历史及其时间戳:
// 添加订单状态历史记录
function add_order_status_history($order_id, $status) {
$order = wc_get_order($order_id);
$order->add_order_note(
sprintf(
__('Order status changed to %s', 'woocommerce'),
wc_get_order_status_name($status)
)
);
}
// 捕获订单状态转换以记录历史记录
function capture_order_status_transition($order_id, $old_status, $new_status) {
if ($old_status != $new_status) {
add_order_status_history($order_id, $new_status);
}
}
add_action('woocommerce_order_status_transition', 'capture_order_status_transition', 10, 3);
// 获取订单状态历史记录及其时间戳
function get_order_status_history($order_id) {
$order = wc_get_order($order_id);
$order_notes = $order->get_customer_order_notes();
$history = array();
foreach ($order_notes as $note) {
$history[] = array(
'status' => $note->comment_content,
'timestamp' => $note->comment_date
);
}
return $history;
}
要使用上述代码,请将其添加到您的主题的functions.php文件中或将其添加到自己的插件中。然后,您可以使用get_order_status_history()
函数来获取订单状态历史记录及其时间戳。
使用示例:
$order_id = 123; // 替换为您要获取历史记录的订单ID
$order_history = get_order_status_history($order_id);
foreach ($order_history as $history) {
echo 'Status: ' . $history['status'] . '
';
echo 'Timestamp: ' . $history['timestamp'] . '
';
}
这将遍历订单的历史记录,并将订单状态和时间戳打印出来。您可以根据需要自行调整输出的格式和样式。
上一篇:保留并恢复WebView内容