如何获得变异的库存数量woocommerce

Sei*_*pon 11 php variation variations stock woocommerce

我正在为wordpress和woocommerce开发一个主题.

我需要显示变异的股票.

<p class="stock-m13"><?php echo $product->get_stock_quantity(); ?></p>
Run Code Online (Sandbox Code Playgroud)

(这里:如何从woocommerce获得文章的库存数量?)但是这个代码只显示全球库存数量,而不是每个变化数量.

我需要另一个功能来获得变化数量?或者我的代码可能没有完成(我认为是因为我使用了Twenty Fifteen主题并且显示了变化数量)?

我希望你能帮助我.

谢谢!!

更新:我尝试用这个得到最大数量:

<?php
    foreach ($product->get_available_variations() as $key) {
        echo $key['max_qty'] .'<br/>';
    }
?>
Run Code Online (Sandbox Code Playgroud)

我明白了,但是当股票价格下跌时我不知道这是否有用.

db3*_*306 7

给定具有多个变量的变量产品,以便获得每个变量的库存数量:

function get_stock_variations_from_product(){
    global $product;
    $variations = $product->get_available_variations();
    foreach($variations as $variation){
         $variation_id = $variation['variation_id'];
         $variation_obj = new WC_Product_variation($variation_id);
         $stock = $variation_obj->get_stock_quantity();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我为WC 2.5找出的最干净的方法,我认为在性能方面可能有更好的方法,但还不那么干净。


Sei*_*pon 1

好的,有了这个我就可以拿走数量了。但没有什么用处。

有了这个,我可以准备一个代码来制作不同的句子,每个产品一个,并在使用 jquery 选择变体时显示它。

但这不是一个好主意。不优雅。我虽然存在类似的东西

$product->get_variation_price()
Run Code Online (Sandbox Code Playgroud)

此代码返回选择时的变化价格。但

$product->get_stock_quantity();
Run Code Online (Sandbox Code Playgroud)

选择变体时不会改变,因为会显示全球库存。

有人能给我一个优雅的解决方案吗?或者不存在?

更新

最后我用了

$product->get_available_variations()
Run Code Online (Sandbox Code Playgroud)

来获取数据。

有了这个,我生成了 html 代码,用 css 隐藏,当我单击变体的颜色时,我会显示它。

2022 年 12 月更新

似乎我们对这篇文章的新评论有最新的答案:/sf/answers/5005262251/