如何获取变体的库存数量 woocommerce

新手上路,请多包涵

我正在为 wordpress 和 woocommerce 开发一个主题,需要显示变体的库存。

 <p class="stock-m13"><?php echo $product->get_stock_quantity(); ?></p>

我阅读 了如何从 woocommerce 获取文章的库存数量? ,但这段代码只显示全球库存数量,而不是每个变化数量。

我需要另一个函数来获取变化量吗?或者有可能我的代码没有完成(我认为是因为我使用了二十十五个主题并且显示了变化数量)?

我试图用这个获得最大数量:

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

这行得通,但我不知道这在股票下跌时是否有用。

原文由 SeiyaJapon 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 579
2 个回答

好的,有了这个我可以拿数量。但是没有用。

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

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

$product->get_variation_price()

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

$product->get_stock_quantity();

选择变体时不会更改,因为向我展示了全球库存。

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

更新

最后我用了

$product->get_available_variations()

获取数据。

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

2022 年 12 月更新

似乎我们对这篇文章的新评论有最新的答案: https ://stackoverflow.com/a/71503746/3877879

原文由 SeiyaJapon 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

 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();
    }
}

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

原文由 db306 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏