我需要在Woocommerce中显示变量产品的每个变体的库存量化
我使用此代码显示库存数量:
<?php echo $product->get_stock_quantity(get_the_ID()); ?>
现在我有了这个产品:
衬衫有可变产品的红色,蓝色。
&#34;红衬衫&#34;库存数量 3
&#34;蓝衬衫&#34;库存数量 4
所以我需要表明:
蓝色= 3 //红色= 4
我该怎么做?
答案 0 :(得分:4)
您的变量产品具有不同的颜色变化和库存数量。
所以你需要得到每个变化: - 变异库存数量: - 此变体的属性“pa_color”术语名称
假设您已获得WC_Product_Variable
对象$product
,则代码如下:
if ($product->is_type( 'variable' )){
// Get the available variations for the variable product
$available_variations = $product->get_available_variations();
// Initializing variables
$variations_count = count($available_variations);
$loop_count = 0;
// Iterating through each available product variation
foreach( $available_variations as $key => $values ) {
$loop_count++;
// Get the term color name
$attribute_color = $values['attributes']['attribute_pa_color'];
$wp_term = get_term_by( 'slug', $attribute_color, 'pa_color' );
$term_name = $wp_term->name; // Color name
// Get the variation quantity
$variation_obj = wc_get_product( $values['variation_id'] );
$stock_qty = $variation_obj->get_stock_quantity(); // Stock qty
// The display
$separator_string = " // ";
$separator = $variations_count < $loop_count ? $separator_string : '';
echo $term_name . ' = ' . $stock_qty . $separator;
}
}
这将完全输出类似(颜色名称“=”库存数量+分隔符):
蓝色= 3 //红色= 4
在WooCommerce 3 +
中经过测试并完美有效答案 1 :(得分:1)
global $woocommerce, $product, $post;
// test if product is variable
if ($product->is_type( 'variable' ))
{
$available_variations = $product->get_available_variations();
foreach ($available_variations as $key => $variation)
{
$variation_id = $variation['variation_id'];
$variation_obj = new WC_Product_variation($variation_id);
$stock = $variation_obj->get_stock_quantity();
}
}
&#13;
答案 2 :(得分:0)
您可以使用get_post_meta()
函数从数据库中获取值。
产品库存数量值存储在 wp_postmeta 表中。
$stock = get_post_meta( $post->ID, '_stock', true );