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

在WooCommerce订单及邮件中显示产品变体自定义字段

在WooCommerce订单及邮件中显示产品变体自定义字段值

嘿,Bradley!你已经搞定了变体后台自定义字段的添加与保存,接下来只需要补加以下代码,就能把字段值同步到订单(包括前台用户订单页、后台管理员订单详情页)以及各类交易邮件中了:

1. 在订单详情中显示自定义字段值

这段代码会把变体的自定义字段值嵌入到订单的商品项目里,不管是用户前台查订单还是管理员后台看详情都能看到:

// 在订单商品项目末尾显示变体自定义字段
add_action( 'woocommerce_order_item_meta_end', 'display_variation_custom_field_in_order', 10, 4 );
function display_variation_custom_field_in_order( $item_id, $item, $order, $plain_text ) {
    // 替换成你自己的自定义字段键名(和后台字段的name对应)
    $custom_field_key = '_your_custom_variation_field';
    
    // 获取当前订单商品对应的变体ID
    $variation_id = $item->get_variation_id();
    
    if ( $variation_id ) {
        // 从变体中取出保存的自定义字段值
        $custom_field_value = get_post_meta( $variation_id, $custom_field_key, true );
        
        if ( ! empty( $custom_field_value ) ) {
            // 适配纯文本(邮件)和HTML(页面)两种格式显示
            if ( $plain_text ) {
                echo PHP_EOL . '自定义字段名称: ' . $custom_field_value;
            } else {
                echo '<br><strong>自定义字段名称:</strong> ' . esc_html( $custom_field_value );
            }
        }
    }
}

2. 可选:将字段值同步保存到订单元数据

如果希望字段值直接存储在订单里(而不是每次读取变体数据),可以加这段代码,在用户下单时就把字段值写入订单元数据:

// 将变体自定义字段值保存到订单元数据
add_action( 'woocommerce_add_order_item_meta', 'save_variation_custom_field_to_order_item', 10, 3 );
function save_variation_custom_field_to_order_item( $item_id, $values, $cart_item_key ) {
    $custom_field_key = '_your_custom_variation_field';
    
    if ( isset( $values['variation_id'] ) && $values['variation_id'] > 0 ) {
        $custom_field_value = get_post_meta( $values['variation_id'], $custom_field_key, true );
        
        if ( ! empty( $custom_field_value ) ) {
            wc_add_order_item_meta( $item_id, '自定义字段名称', $custom_field_value );
        }
    }
}

关键注意点:

  • 把代码里的_your_custom_variation_field替换成你之前在woo_variable_fields函数中定义的字段键名(比如你可能用的是_custom_material这类)。
  • 把自定义字段名称改成你实际的字段标签,比如“材质”“特殊备注”等,让用户能直观理解。
  • 代码可以添加到主题的functions.php文件,或者用自定义代码插件(比如Code Snippets)添加,避免主题更新丢失代码。

这样设置后,用户下单后不管是查看订单详情页,还是收到的确认邮件、发货邮件,都能清晰看到这个变体的自定义字段值啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:57:28