【问题标题】:WooCommerce: show current SKU and GTIN in variable product pageWooCommerce:在可变产品页面中显示当前 SKU 和 GTIN
【发布时间】:2019-01-13 06:25:03
【问题描述】:

有没有办法在可变产品页面中显示当前产品 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>';                    
}

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

【问题讨论】:

    标签: php woocommerce barcode variations sku


    【解决方案1】:

    更新 (最后是您现有的代码)

    为了使变体产品成为可能,我们将使用动态变体描述插入 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;
    }
    

    代码进入您的活动子主题(或活动主题)的 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>';                  
    }
    

    代码进入您的活动子主题(或活动主题)的 function.php 文件中。

    【讨论】:

      猜你喜欢
      • 2017-02-21
      • 2020-10-17
      • 2016-11-04
      • 1970-01-01
      • 1970-01-01
      • 2017-06-14
      • 1970-01-01
      • 2016-03-04
      • 1970-01-01
      相关资源
      最近更新 更多