3 回答

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個贊
為了使它也適用于可變產(chǎn)品及其變體,它需要 Javascript (jQuery) 來獲取可變產(chǎn)品的所選變體 SKU。
請嘗試以下適用于簡單可變商品類型的操作,并顯示可變商品的所選變體 SKU:
add_shortcode( 'product_sku_div', 'wc_product_sku_div');
function wc_product_sku_div() {
global $product;
if( ! is_a('WC_Product', $product) ) {
$product = wc_get_product( get_the_id() );
}
## 1 - For variable products (and their variations)
if( $product->is_type('variable') ) {
ob_start(); // Starting buffering
?>
<div class="widget" sp-sku=""></div>
<script type="text/javascript">
jQuery( function($){
$('form.variations_form').on('show_variation', function( event, data ){
$( 'div.widget' ).attr( 'sp-sku', data.sku );
// For testing
console.log( 'Variation Id: ' + data.variation_id + ' | Sku: ' + data.sku );
});
$('form.variations_form').on('hide_variation', function(){
$( 'div.widget' ).attr( 'sp-sku', '' );
});
});
</script><?php
return ob_get_clean(); // return the buffered content
}
## 2 - For other products types
else {
return sprintf( '<div class="widget" sp-sku="%s"></div>', $product->get_sku() );
}
}
代碼進(jìn)入函數(shù).php活動子主題(或活動主題)的文件。經(jīng)過測試并工作。

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個贊
您需要變體 ID 才能獲取可變產(chǎn)品的 SKU。
如果在以下函數(shù)中傳遞變體 ID,則可以獲取其 SKU。
$product = new WC_Product_Variation($variation_id); $product->get_sku();
以下代碼可用于獲取產(chǎn)品的變體。然后,將結(jié)果轉(zhuǎn)換為變體 ID,然后在上述代碼中使用該變體 ID 來獲取結(jié)果。
$variations = $product->get_available_variations();

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個贊
您需要使用 。get_available_variations();
add_shortcode( 'product_sku_div', 'wc_product_sku_div');
function wc_product_sku_div() {
global $product;
$variants_array = $product->get_available_variations();
for ($i = 0; $i < count($variants_array); $i++ ) {
return sprintf( '<div class="widget" sp-sku="%s"></div>', $variants_array[$i]['sku'] );
}
}
參考:
get_available_variations() ~ https://docs.woocommerce.com/wc-apidocs/class-WC_Product_Variable.html
- 3 回答
- 0 關(guān)注
- 117 瀏覽
添加回答
舉報(bào)