我将产品变式显示为列表,而不是使用下面的代码显示下拉列表(可能会对某些人有所帮助)。我要补充的是每个版本的库存数量。
也就是说,插入这样的东西非常理想。
<?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
}} ```
答案 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>';
}
}
?>
希望有帮助!经过测试和工作。祝你好运。