3

在 WooCommerce 中,我有一个显示一个价格的单一产品视图。我想添加另一个价格标签,它应该显示原始价格除以一个数字。

现在我正在处理cart.php我的主题文件夹中的文件,这是我的代码:

<p class="price"><?php echo $product->get_price_html(); ?> / Flasche <br> </p>
<p class="preisproliter"><?php 
$flaschenpreis = $product->get_price_html(); 
$literpreis = 0.75; 
$division = $flaschenpreis / $literpreis; 
echo $division; 
?></p>

第一行显示正确,但第二行仅显示一个0值。

我做错了什么?

谢谢。

4

2 回答 2

2

当您试图通过计算来操纵价格值时,您应该使用get_price()而不是get_price_html()方法。

你的代码:

<p class="price"><?php echo $product->get_price_html(); ?> / Flasche <br> </p>
<p class="preisproliter"><?php 
$flaschenpreis = $product->get_price(); // <= HERE
$literpreis = 0.75; 
$division = $flaschenpreis / $literpreis; 
echo $division;
?></p>

一旦您的计算完成并开始工作,您可以选择使用'woocommerce_price_html'过滤器挂钩来格式化$division (就像get_price_html()这样)

要选择显示$divisionFORMATTED HTML 值,您可以在代码中使用:

echo apply_filters( 'woocommerce_price_html', $division, $this ); 
于 2016-08-20T21:03:42.823 回答
0

感谢你的回答!

好吧,它仍然没有用,因为我有可变价格。如果我使用 $product->get_price() 而不是 $product->get_price_html(),我得到 $division = $flaschenpreis * 6 / $literpreis; 因此。

我想原因是,我的第一个产品变体是价格 * 6。所以

<p class="price"><?php echo $product->get_price_html(); ?> / Flasche <br> </p>
<p class="preisproliter"><?php 
$flaschenpreis = $product->get_price(); // <= HERE
$literpreis = 0.75; 
$division = $flaschenpreis / $literpreis / 6; 
echo $division;
?></p>

引导我找到合适的价格。这仍然需要格式化(四舍五入到小数点后两位)。

无论如何,我认为这是一个肮脏的解决方案。有干净的方法吗?为什么不能第二次使用 get_price_html 呢?

于 2016-08-22T09:21:10.513 回答