Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何乘以包含€;有价值_Php_Wordpress_Woocommerce - Fatal编程技术网

Php 如何乘以包含€;有价值

Php 如何乘以包含€;有价值,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,因为我是PHP新手,所以我有一个非常简单的问题。在stackoverflow上搜索和搜索之后,我仍然无法让它工作 <?php $payinfront = $product->get_price_html(); $totalprice = $payinfront * 2; ?> <p class="price">Total price: <?php echo $totalprice ?></p> <p class="p

因为我是PHP新手,所以我有一个非常简单的问题。在stackoverflow上搜索和搜索之后,我仍然无法让它工作

<?php 
    $payinfront = $product->get_price_html();
    $totalprice = $payinfront * 2;
?>

<p class="price">Total price: <?php echo $totalprice ?></p>
<p class="price">Amount to pay in front: <?php echo $payinfront ?></p>
<p class="price">Amount to pay after: <?php echo $totalprice - $payinfront ?></p>

总价:

预付款金额:

在以下日期后支付的金额:

$payinfront值确实从我的模板的另一部分获得了它的值。假设是10欧元。这是人们必须提前支付的金额。当我们完成服务后,他们必须支付另一半的费用,这是最后一条规则

谢谢你帮助我

像这样

<?php 
    $payinfront = $product->get_price_html();
    $totalprice = $payinfront * 2;
?>

<p class="price">Total price: &euro;<?php echo $totalprice ?></p>
<p class="price">Amount to pay in front: &euro;<?php echo $payinfront ?></p>
<p class="price">Amount to pay after: &euro;<?php echo $totalprice - $payinfront ?></p>

总价:&欧元

预付款金额:&欧元

之后的支付金额:&欧元


请注意,
&euro生成欧元符号

在乘法之前删除货币符号:

$totalprice =  substr($payinfront, 1) * 2;

您首先必须删除欧元符号,以便将变量视为一个数字。然后进行乘法运算,并在html部分连接下面的欧元符号

<?php 
    $payinfront = $product->get_price_html();
    $payinfront = str_replace("&euro;","",$payinfront);
    $totalprice = $payinfront * 2;
?>

<p class="price">Total price: <?php echo $totalprice ?>&euro;</p>
<p class="price">Amount to pay in front: <?php echo $payinfront ?>&euro;</p>
<p class="price">Amount to pay after: <?php echo $totalprice - $payinfront ?>&euro;</p>

总价:&欧元

预付款金额:&欧元

之后的支付金额:&欧元


您希望将价格存储为而不是字符串,以便PHP能够将其识别为数值,并对其进行计算。仅在最后一刻,当您在模板中对它们进行
echo
处理时,才将它们转换为字符串

<?php
    $payInFront = $product->getPrice(); // should return a numeric value, instead of a string
    $totalPrice = $payInFront * 2;
    $payAfter   = $totalPrice - $payInFront;
?>

那么get_price_html()返回用货币符号格式化的价格?get_price()是否存在?我们可能需要更多地了解您的产品类。get_price_html()确实会返回包含货币符号的价格。代码来自WoodPress插件Woocommerce,我是否需要显示来自get_price_html()的代码;这里?我没有任何使用该插件的经验,但尝试将该行更改为$product->price;这可能行得通。我强烈建议检查正确的方法,而不是像一些答案所建议的那样使用stru替换来删除货币符号。问题不在于欧元符号$totalprice的值为10欧元,但当我回显$totalprice时,它打印的值为0。因此,代码似乎无法正常工作。此代码可以正常工作,我只需更改getPrice();要得到你的价格();但是非常感谢!
<p>Price: &euro; <?php echo number_format($totalPrice, 2, ',', '.'); ?></p>