是否可以在可变的产品页面中显示当前产品的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。
答案 0 :(得分: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文件中。