以下是我的意思的一个例子,但是如何通过woocommerce完成这项工作?
// Testing numbers. Replace with your own.
$value = 40;
$max = 150;
$scale = 1.0;
// Get Percentage out of 100
if ( !empty($max) ) { $percent = ($value * 100) / $max; }
else { $percent = 0; }
// Limit to 100 percent (if more than the max is allowed)
if ( $percent > 100 ) { $percent = 100; }
The CSS
.percentbar { background:#CCCCCC; border:1px solid #666666; height:10px; }
.percentbar div { background: #28B8C0; height: 10px; }
The HTML
<div class="percentbar" style="width:<?php echo round(100 * $scale); ?>px;">
<div style="width:<?php echo round($percent * $scale); ?>px;"></div>
</div>
Percentage: <?php echo $percent; ?>%
但是如何用woocommerce做到这一点?
答案 0 :(得分:0)
默认情况下,woocommerce不会保留您在开始时拥有的库存量,每个订单都会减少该库存量。但是,它确实记录了目前的库存量和已售出的库存量。将它们中的两个组合将告诉您总共有多少库存。从那以后,使用上面的示例代码我将下面的内容放在一起。
<?php
$max = get_post_meta($product->id, 'total_sales', true) + $product->get_stock_quantity();;
$value = get_post_meta($product->id, 'total_sales', true);
$scale = 1.0;
// Get Percentage out of 100
if ( !empty($max) )
{
$percent = ($value * 100) / $max;
}
else
{
$percent = 0;
}
// Limit to 100 percent (if more than the max is allowed)
if ($percent > 100 )
{
$percent = 100;
}
?>
<div class="percentbar" style="background:#CCCCCC; border:1px solid #666666; height:10px; width:<?php echo round(100 * $scale); ?>px;">
<div style="background: #28B8C0; height: 10px; width:<?php echo round($percent * $scale); ?>px;"></div>
Percentage: <?php echo $percent; ?>%
我假设这将显示而不是X in stock
文本。所以在&#34; woocommerce / templates / single-product / add-to-cart / simple.php&#34; *用以上代码代替以下代码:
echo apply_filters( 'woocommerce_stock_html', '<p class="stock ' . esc_attr( $availability['class'] ) . '">' . esc_html( $availability['availability'] ) . '</p>', $availability['availability'] );
你可以修改&#34; simple.php&#34;本身,但如果你更新woocommerce,这将被覆盖。你
是recommended只需将其复制到名为/ woocommerce的主题目录中,保持相同的文件结构。