如何为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; }
代码说明
- 仅对后台手动创建的订单生效,完全不影响前端产品展示和用户下单流程。
- 手动添加变体到订单时,若该变体设置了自定义标题,会自动替换默认的「产品名 - 属性名」格式标题,解决价格重复显示的杂乱问题。
- 未设置自定义标题时,保留原有标题逻辑,无任何副作用。
使用注意事项
- 代码位置:优先使用自定义功能插件(避免主题更新丢失代码),其次是当前主题的
functions.php文件。 - 测试验证:添加代码后,进入产品变体编辑页设置自定义标题,再手动创建订单添加该变体,检查标题是否已替换。
- 订阅兼容性:与WooCommerce Subscriptions等订阅插件无冲突,仅修改订单标题显示,不影响订阅核心逻辑。
内容的提问来源于stack exchange,提问作者JapeNZ
相关产品推荐
相关产品推荐

