首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取WooCommerce变量产品中各活动变量的库存量。

获取WooCommerce变量产品中各活动变量的库存量。
EN

Stack Overflow用户
提问于 2017-08-19 11:44:27
回答 3查看 9.2K关注 0票数 5

我需要显示Woocommerce中可变产品的每个变体的库存数量。

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

代码语言:javascript
复制
<?php echo $product->get_stock_quantity(get_the_ID()); ?>

现在我有了这个产品:

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

“红衫军”的库存量为3 “蓝衬衫”的存货量为4

所以我要证明:

蓝色=3 //红色= 4

我该怎么做呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-08-19 13:57:23

你有一个不同的颜色变化和库存数量变化的可变产品。

因此,您需要为每个变化获得:-变化库存数量:-属性'pa_color‘术语名称的这种变化

假设您已经获得了WC_Product_Variable对象$product,下面是代码:

代码语言:javascript
复制
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+中完美地工作

票数 7
EN

Stack Overflow用户

发布于 2017-08-19 12:53:08

代码语言:javascript
复制
 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();
    }
}

票数 3
EN

Stack Overflow用户

发布于 2017-08-19 12:04:27

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

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

代码语言:javascript
复制
$stock = get_post_meta( $post->ID, '_stock', true );
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45771131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档