在 Magento 中,我想将自定义 PHP 函数应用于前端价格的显示,而不更改后端/购物车上的实际数字价格。
具体来说,当价格中没有美分时,我想删除显示价格上的小数点。例如,19.00 美元将显示为 19 美元,但 19.99 美元将显示为 19.99 美元。
我在 PHP.net 上找到了一个 PHP 函数,它将为我执行此更改:
// formats money to a whole number or with 2 decimals; includes a dollar sign in front
function formatMoney($number, $cents = 1) { // cents: 0=never, 1=if needed, 2=always
if (is_numeric($number)) { // a number
if (!$number) { // zero
$money = ($cents == 2 ? '0.00' : '0'); // output zero
} else { // value
if (floor($number) == $number) { // whole number
$money = number_format($number, ($cents == 2 ? 2 : 0)); // format
} else { // cents
$money = number_format(round($number, 2), ($cents == 0 ? 0 : 2)); // format
} // integer or decimal
} // value
return $money;
} // numeric
} // formatMoney
我不想更改 Magento 模板来应用此功能,因为价格到处都是。更新所有模板将是一场噩梦。
我想知道是否有一个地方我可以使用这个功能来格式化全球价格的显示,这样它就可以从一个地方影响所有价格的显示。
我已经花了几个小时浏览各种 Magento 文件,包括:
app/code/core/Mage/Directory/Model/Currency.php
public function format <-- 这个函数改变的是实际价格,而不是价格的显示。
app/code/core/Mage/Catalog/Model/Product.php:
public function getFormatedPrice <-- 这个函数看起来很有希望,但对我没有任何作用。
我还查看了这些文件,没有任何明显的地方跳出来:
app/code/core/Mage/Catalog/Block/Product.php
app/code/core/Mage/Catalog/Block/Product/Price.php
app/code/core/Mage/Catalog/Block/Product/View.php
你认为有可能在 Magento 中找到一个地方,我可以破解我的自定义 PHP 函数来显示价格(而不是购物车中的实际数字价格)吗?