我需要显示Woocommerce中可变产品的每个变体的库存数量。
我使用此代码显示库存数量:
<?php echo $product->get_stock_quantity(get_the_ID()); ?>现在我有了这个产品:
衬衫有红色,蓝色代表可变产品。
“红衫军”的库存量为3 “蓝衬衫”的存货量为4
所以我要证明:
蓝色=3 //红色= 4
我该怎么做呢?
发布于 2017-08-19 13:57:23
你有一个不同的颜色变化和库存数量变化的可变产品。
因此,您需要为每个变化获得:-变化库存数量:-属性'pa_color‘术语名称的这种变化
假设您已经获得了WC_Product_Variable对象$product,下面是代码:
if ($product->is_type( 'variable' )){
// Get the available variations for the variable product
$available_variations = $product->get_available_variations();
// Initializing variables
$variations_count = count($available_variations);
$loop_count = 0;
// Iterating through each available product variation
foreach( $available_variations as $key => $values ) {
$loop_count++;
// Get the term color name
$attribute_color = $values['attributes']['attribute_pa_color'];
$wp_term = get_term_by( 'slug', $attribute_color, 'pa_color' );
$term_name = $wp_term->name; // Color name
// Get the variation quantity
$variation_obj = wc_get_product( $values['variation_id'] );
$stock_qty = $variation_obj->get_stock_quantity(); // Stock qty
// The display
$separator_string = " // ";
$separator = $variations_count < $loop_count ? $separator_string : '';
echo $term_name . ' = ' . $stock_qty . $separator;
}
}这将准确地输出类似于(颜色名称"=“股票数量+分隔符): 蓝色=3 //红色= 4
测试并在WooCommerce 3+中完美地工作
发布于 2017-08-19 12:53:08
global $woocommerce, $product, $post;
// test if product is variable
if ($product->is_type( 'variable' ))
{
$available_variations = $product->get_available_variations();
foreach ($available_variations as $key => $variation)
{
$variation_id = $variation['variation_id'];
$variation_obj = new WC_Product_variation($variation_id);
$stock = $variation_obj->get_stock_quantity();
}
}
发布于 2017-08-19 12:04:27
您可以使用get_post_meta()函数从数据库中获取值。
产品库存数量值存储在wp_postmeta表中。
$stock = get_post_meta( $post->ID, '_stock', true );https://stackoverflow.com/questions/45771131
复制相似问题