Php WooCommerce:在可变产品页面中显示当前SKU和GTIN

Php WooCommerce:在可变产品页面中显示当前SKU和GTIN,php,woocommerce,barcode,variations,sku,Php,Woocommerce,Barcode,Variations,Sku,是否有办法在可变产品页面中显示当前产品SKU和GTIN?现在我正在使用以下代码,但它只适用于没有变体的简单产品: add_action('woocommerce_single_product_summary', 'show_sku_and_gtin'); function show_sku_and_gtin() { global $product, $post; echo '<p>SKU: '.$product->sku.'</p>'; // In m

是否有办法在可变产品页面中显示当前产品SKU和GTIN?现在我正在使用以下代码,但它只适用于没有变体的简单产品:

add_action('woocommerce_single_product_summary', 'show_sku_and_gtin');
function show_sku_and_gtin() {
  global $product, $post; 
  echo '<p>SKU: '.$product->sku.'</p>';
  // In my case, GTIN is a custom field called "barcode"
  echo '<p>GTIN: '.get_post_meta($post->ID, 'barcode', 1).'</p>';                    
}
add_action('woocommerce_single_product_summary'、'show_sku_和_gtin');
函数show_sku_和_gtin(){
全球$product$post;
回显“SKU:”.$product->SKU.

”; //在我的例子中,GTIN是一个名为“条形码”的自定义字段 回显“GTIN:”。获取“post”meta($post->ID,'barcode',1)。“

”; }
每当我在产品页面中选择不同的产品变体时,我希望它能够动态更新SKU和GTIN。

更新(对于最后的现有代码)

为了使变体产品能够实现这一点,我们将使用动态变体描述插入SKU和GTIN,并动态显示它们:

// Display product variations SKU and GTIN info
add_filter( 'woocommerce_available_variation', 'display_variation_sku_and_gtin', 20, 3 );
function display_variation_sku_and_gtin( $variation_data, $product, $variation ) {
    $html = ''; // Initializing

    // Inserting SKU
    if( ! empty( $variation_data['sku'] ) ){
        $html .= '</div><div class="woocommerce-variation-sku">' . __('SKU:') . ' ' . $variation_data['sku'];
    }

    // Inserting GTIN
    if( get_post_meta( $variation->get_id(), 'barcode', true ) ){
        $gtin = get_post_meta( $variation->get_id(), 'barcode', true );
        $html .= '</div><div class="woocommerce-variation-gtin">' . __('GTIN:') . ' ' . $gtin;
    }

    // Using the variation description to add dynamically the SKU and the GTIN
    $variation_data['variation_description'] .= $html;

    return $variation_data;
}
//显示产品变体SKU和GTIN信息
添加过滤器('woocommerce'u available'u variation'、'display'u variation'u sku'u和'u gtin',20,3);
功能显示_变体_sku_和_gtin($variation_data、$product、$variation){
$html='';//正在初始化
//插入SKU
如果(!empty($variation_data['sku'])){
$html.=''.''.'库存单位('SKU:').'.$variation\U数据['SKU'];
}
//插入GTIN
if(get_post_meta($variation->get_id(),'barcode',true)){
$gtin=get_post_meta($variation->get_id(),'barcode',true);
$html.=''.''.''GTIN:'.'.'.$GTIN;
}
//使用变体描述动态添加SKU和GTIN
$variation\u data['variation\u description']。=$html;
返回$U数据;
}
代码进入活动子主题(或活动主题)的function.php文件。测试和工作


现在,您的答案代码自Woocommerce 3以来有点过时,并且有一些错误

此外,您应该从中排除可变产品,就像我的回答代码一样,您现在可以获得可变产品的产品变体的SKU和GTIN

以下是重新访问的代码:

add_action('woocommerce_single_product_summary', 'display_product_sku_and_gtin', );
function display_product_sku_and_gtin() {
    global $product; 

    echo '<p>' . __("SKU:") . ' ' . $product->get_sku() . '</p>';

    if( get_post_meta( $product->get_id(), 'barcode', true) )
        echo '<p>' . __("GTIN:") . ' ' . get_post_meta( $product->get_id(), 'barcode', true) . '</p>';                  
}
add_action('woocommerce_single_product_summary'、'display_product_sku_和'u gtin');
功能显示产品sku和gtin(){
全球$产品;
回显“”。(SKU:”。$product->get_SKU()。

”; if(get_post_meta($product->get_id(),'barcode',true)) 回显“”。“GTIN:”。“.get_post_meta($product->get_id(),“barcode”,true)。”

”; }
代码进入活动子主题(或活动主题)的function.php文件