You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WooCommerce后台订单编辑页显示订单项的取件/送件日期

WooCommerce后台订单编辑页显示订单项取件/送件日期的解决方法

问题原因

你之前的代码用了woocommerce_email_order_meta钩子,这是针对订单邮件的,和后台订单编辑页无关;另外如果没有把购物车项里的日期保存到订单项元数据,后台也无法读取到这些信息。

解决步骤

1. 先将购物车项的日期保存到订单项元数据

这段代码会在订单创建时,把购物车中每个商品的取件、送件日期同步保存为订单项的元数据:

// 保存购物车项的取件/送件日期到订单项
add_action('woocommerce_checkout_create_order_line_item', 'save_pickup_dropoff_dates_to_order_item', 10, 4);
function save_pickup_dropoff_dates_to_order_item($item, $cart_item_key, $cart_item, $order) {
    if (!empty($cart_item['pickup_date'])) {
        // 和结账页保持一致的日期格式化
        $pickup_date = date('Y-m-d', strtotime(str_replace('/', '-', $cart_item['pickup_date'])));
        $item->add_meta_data('pickup_date', $pickup_date, true);
    }
    if (!empty($cart_item['dropoff_date'])) {
        $dropoff_date = date('Y-m-d', strtotime(str_replace('/', '-', $cart_item['dropoff_date'])));
        $item->add_meta_data('dropoff_date', $dropoff_date, true);
    }
}

2. 在后台订单编辑页的订单项中显示日期

这段代码会在后台订单编辑页面的每个商品项下方,展示对应的取件和送件日期:

// 在后台订单编辑页的订单项中显示取件/送件日期
add_action('woocommerce_after_order_itemmeta', 'display_pickup_dropoff_dates_in_admin_order', 10, 3);
function display_pickup_dropoff_dates_in_admin_order($item_id, $item, $product) {
    // 只处理产品类型的订单项(跳过运费、优惠券等条目)
    if ($item->get_type() !== 'line_item') return;

    $pickup_date = wc_get_order_item_meta($item_id, 'pickup_date', true);
    $dropoff_date = wc_get_order_item_meta($item_id, 'dropoff_date', true);

    if ($pickup_date && $dropoff_date) {
        echo '<div style="margin-top: 8px; padding-top: 8px; border-top: 1px solid #eee;">';
        echo '<strong>取件日期:</strong> ' . esc_html($pickup_date) . '<br>';
        echo '<strong>送件日期:</strong> ' . esc_html($dropoff_date);
        echo '</div>';
    } elseif ($pickup_date || $dropoff_date) {
        echo '<div style="margin-top: 8px; padding-top: 8px; border-top: 1px solid #eee;">';
        if ($pickup_date) echo '<strong>取件日期:</strong> ' . esc_html($pickup_date) . '<br>';
        if ($dropoff_date) echo '<strong>送件日期:</strong> ' . esc_html($dropoff_date);
        echo '</div>';
    }
}

使用说明

把两段代码添加到你的主题functions.php文件,或者自定义插件中即可。之后新创建的订单,后台编辑页就会显示对应商品的取件/送件日期;如果要让旧订单也生效,需要手动给旧订单项添加对应的元数据(键名为pickup_date和dropoff_date)。

内容的提问来源于stack exchange,提问作者Zohaib Amir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 17:55:19