【问题标题】:How to get each variation's stock quantity woocommerce如何获取每个变体的库存数量 woocommerce
【发布时间】:2020-03-05 10:18:05
【问题描述】:

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

也就是说,像这样的东西是理想的选择。

<?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】:

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

    <?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>';
    
         }
      }
    
     ?>
    

    希望对您有所帮助!测试和工作。祝你好运。

    【讨论】:

      猜你喜欢
      • 2018-01-27
      • 1970-01-01
      • 1970-01-01
      • 2013-12-13
      • 2020-08-24
      • 2018-07-20
      • 2017-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多