如何获得每个变化的库存量woocommerce

时间:2019-11-08 18:58:52

标签: php woocommerce variations

我将产品变式显示为列表,而不是使用下面的代码显示下拉列表(可能会对某些人有所帮助)。我要补充的是每个版本的库存数量。

也就是说,插入这样的东西非常理想。

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

用于在表格/列表中显示变体的当前代码。

        global $product, $post;
        $variations = $product->get_available_variations();
        foreach ($variations as $key => $value) {
        ?>
        <form action="<?php echo esc_url( $product->add_to_cart_url() ); ?>"method="post" enctype='multipart/form-data'>
            <input type="hidden" name="variation_id" value="<?php echo $value['variation_id']?>" />
            <input type="hidden" name="product_id" value="<?php echo esc_attr( $post->ID ); ?>" />
            <?php
            if(!empty($value['attributes'])){
                foreach ($value['attributes'] as $attr_key => $attr_value) {
                ?>
                <input type="hidden" name="<?php echo $attr_key?>" value="<?php echo $attr_value?>">
                <?php
                }
            }
            ?>
            <table>
                <tbody>
                    <tr>
                        <td>
                            <b><?php echo implode('/', $value['attributes']);?></b>
                        </td>
                        <td>
                            <?php echo $value['price_html'];?>
                        </td>
                        <td>

                        </td>
                        <td>
                            <button type="submit" class="single_add_to_cart_button button alt"><?php echo apply_filters('single_add_to_cart_text', __( 'Add to cart', 'woocommerce' ), $product->product_type); ?></button>
                        </td>
                    </tr>
                </tbody>
            </table>
        </form>
        <?php
        }} ```

1 个答案:

答案 0 :(得分:0)

您可以通过以下方式访问产品库存:

<?php

global $product;


     if ( $product->is_type('variable') ) {

     foreach ( $product->get_visible_children() as $variation_id ) {

     //gets the product variation based on its id
     $get_product_variation = wc_get_product( $variation_id );

     //get each variations stock quantity
     $product_variation_stock = $get_product_variation->get_stock_quantity();

     //do whatever with variation stock
     echo '<p> Variation: ' . $variation_id . ' - Stock: ' . $product_variation_stock . '</p>';

     }
  }

 ?>

希望有帮助!经过测试和工作。祝你好运。