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

2022-08-30 23:27:45

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

我需要显示变体的股票。

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

(这里:如何从woocommerce获取文章的库存量?但此代码仅向我显示全球库存数量,而不是每个变体数量。

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

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

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

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


答案 1

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

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找到的最干净的方式,我认为在性能方面可能有更好的方法,但不是那么干净。


答案 2

下面的代码将打印所有带有“is_in_stock”变量的属性。

<?php
    global $product;
    $product_variations = $product->get_available_variations();

    foreach ($product_variations as $variation)  {
        $var_data = $variation['attributes'];
        $var_data['in_stock'] = $variation['is_in_stock'];
    }

    //List all attributes with stock available or not array..
    echo '<pre>';
    print_r($var_data);
    echo '</pre>';
    die;
?>

推荐