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

WooCommerce自定义条形码元数据前端显示问题求助

WooCommerce自定义元字段barcode无法显示的解决方法

你在functions.php中创建的_barcode是自定义产品元字段,但你用get_attribute()调用是错误的——这个方法是用来读取WooCommerce的产品属性(比如颜色、尺寸这类全局属性)的,和自定义元字段不是同一个概念,所以会显示空白。

你的创建字段代码(供参考)

function add_barcode(){
    woocommerce_wp_text_input(
        array(
            'id' => '_barcode',
            'label' => __( 'Barcode', 'your-plugin' ),
            'placeholder' => 'Scan Barcode',
            'desc_tip' => 'true',
            'description' => __( "Scan the product's barcode.", "your-plugin" )
        )
    );
}
add_action('woocommerce_product_options_inventory_product_data','add_barcode');

function add_barcode_save( $product ){
    if( isset( $_POST['_barcode'] ) ) {
        $product->update_meta_data( '_barcode', sanitize_text_field( $_POST['_barcode'] ) );
    } else {
        $product->delete_meta_data( '_barcode' );
    }
}
add_action( 'woocommerce_admin_process_product_object', 'add_barcode_save' );

正确的显示代码

直接使用WooCommerce产品对象的get_meta()方法读取自定义元字段,同时增加安全判断和转义:

$product = wc_get_product();
// 先判断产品对象是否存在,且元字段有值
if ( $product && $barcode = $product->get_meta( '_barcode' ) ) {
    echo '<strong>Barcode: </strong>' . esc_html( $barcode );
}

补充说明

  • get_meta()是WooCommerce专门用来读取产品自定义元数据的方法,对应你保存时用的update_meta_data();
  • 加入esc_html()是为了防止XSS攻击,确保输出内容的安全性;
  • 增加产品对象和元字段值的判断,避免在产品不存在或无条码时输出多余的标签内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 03:35:15