获取WooCommerce变量产品

时间:2017-08-19 11:44:28

标签: php wordpress woocommerce product variations

我需要在Woocommerce中显示变量产品的每个变体的库存量化

我使用此代码显示库存数量:

<?php echo $product->get_stock_quantity(get_the_ID()); ?>

现在我有了这个产品:

衬衫有可变产品的红色,蓝色。

  

&#34;红衬衫&#34;库存数量 3
  &#34;蓝衬衫&#34;库存数量 4

所以我需要表明:

  

蓝色= 3 //红色= 4

我该怎么做?

3 个答案:

答案 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)

&#13;
&#13;
 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;
&#13;
&#13;

答案 2 :(得分:0)

您可以使用get_post_meta()函数从数据库中获取值。

产品库存数量值存储在 wp_postmeta 表中。

$stock = get_post_meta( $post->ID, '_stock', true );