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

如何为WooCommerce产品变体添加自定义标题并替换手动订单默认标题

为WooCommerce产品变体添加自定义标题字段并在手动订单中替换默认标题

步骤1:添加变体自定义字段到产品编辑界面

首先在产品变体的编辑区域添加「Variation title」输入框,用于为每个变体设置专属自定义标题。将以下代码添加到主题functions.php文件或自定义功能插件中:

// 在变体编辑界面添加自定义标题字段
add_action( 'woocommerce_variation_options_price', 'add_variation_custom_title_field', 10, 3 );
function add_variation_custom_title_field( $loop, $variation_data, $variation ) {
    woocommerce_wp_text_input( array(
        'id'          => 'variation_custom_title[' . $loop . ']',
        'label'       => __( 'Variation title', 'woocommerce' ),
        'placeholder' => '输入自定义标题(手动订单使用)',
        'desc_tip'    => true,
        'description' => '仅在手动创建后台订单时替换默认变体标题,不影响前端显示',
        'value'       => get_post_meta( $variation->ID, '_variation_custom_title', true )
    ) );
}

// 保存变体自定义标题字段值
add_action( 'woocommerce_save_product_variation', 'save_variation_custom_title_field', 10, 2 );
function save_variation_custom_title_field( $variation_id, $i ) {
    $custom_title = isset( $_POST['variation_custom_title'][$i] ) ? sanitize_text_field( $_POST['variation_custom_title'][$i] ) : '';
    update_post_meta( $variation_id, '_variation_custom_title', $custom_title );
}

这段代码会在每个变体的价格设置区下方新增输入框,填写自定义标题后保存变体即可完成设置。

步骤2:在手动创建订单时替换默认标题

添加以下代码,让WooCommerce仅在后台手动创建订单时,用自定义标题替换默认变体标题:

// 在手动创建后台订单时替换变体标题
add_filter( 'woocommerce_order_item_name', 'replace_variation_title_in_manual_orders', 10, 2 );
function replace_variation_title_in_manual_orders( $item_name, $item ) {
    // 仅处理变体产品,且仅在后台手动创建的订单中生效
    if ( ! is_admin() || ! $item->is_type('line_item') || ! $item->get_variation_id() ) {
        return $item_name;
    }

    // 判断订单是否为手动创建
    $order = $item->get_order();
    if ( 'admin' !== $order->get_created_via() ) {
        return $item_name;
    }

    // 获取变体的自定义标题
    $custom_title = get_post_meta( $item->get_variation_id(), '_variation_custom_title', true );

    // 有自定义标题则替换,否则保留原标题
    if ( ! empty( $custom_title ) ) {
        $item_name = $custom_title;
    }

    return $item_name;
}

代码说明

  • 仅对后台手动创建的订单生效,完全不影响前端产品展示和用户下单流程。
  • 手动添加变体到订单时,若该变体设置了自定义标题,会自动替换默认的「产品名 - 属性名」格式标题,解决价格重复显示的杂乱问题。
  • 未设置自定义标题时,保留原有标题逻辑,无任何副作用。

使用注意事项

  1. 代码位置:优先使用自定义功能插件(避免主题更新丢失代码),其次是当前主题的functions.php文件。
  2. 测试验证:添加代码后,进入产品变体编辑页设置自定义标题,再手动创建订单添加该变体,检查标题是否已替换。
  3. 订阅兼容性:与WooCommerce Subscriptions等订阅插件无冲突,仅修改订单标题显示,不影响订阅核心逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 19:36:14