我正在使用wordpress / woocommerce并获得这样的产品的价格:
$get_price = get_post_meta( $item_id, '_regular_price', true);
然后我计算折扣并将其删除:
$discount = 10;
$minus = ($discount / 100) * $get_price;
$price = wc_price($get_price - $minus);
出于某种原因,我收到以下错误:
CRITICAL Uncaught Error: Unsupported operand types in .....
指向以$ minus = ...
开头的行我使用“gettype”进行了一些挖掘,发现woocommerce价格存储为字符串,而不是整数。
然后我将上面的内容改为此以确保它现在是一个整数:
$discount = 10;
$minus = ($discount / 100) * (int)$get_price;
$price = wc_price($get_price - $minus);
现在可行,但它将产品的价格从13.97英镑降低到13.00英镑。任何想法为什么会这样?还有什么理由将价格首先存储为字符串?
修改
我现在尝试了以下内容:
$get_price = get_post_meta( $item_id, '_regular_price', true);
$new_price = (float) $get_price;
echo gettype($new_price);
仍然返回字符串。
答案 0 :(得分:-2)
$discount = '10';
将此更改为
$discount = 10;
因为$discount = '10';
被视为字符串
你可以使用
var_dump($discount);
检查数据类型
希望它有所帮助: - )