如何获得每种版本的库存量woocommerce

问题描述 投票:0回答:1

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

即类似这样的插入是理想的。

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

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

function woocommerce_variable_add_to_cart() {
    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
    }
}
php woocommerce variations
1个回答
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>';

     }
  }

 ?>

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

© www.soinside.com 2019 - 2024. All rights reserved.