我使用的是Magento 2.2.3我的默认货币是INR,但它的显示格式错误
但它应该是₹77,65,000.00我们如何纠正目前的价格格式如美元
我尝试了很多方法,但我无法解决此问题,请帮助解决此问题
答案 0 :(得分:0)
您可以按照以下代码设置货币格式。
<?php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); // Instance of Object Manager
$priceHelper = $objectManager->create('Magento\Framework\Pricing\Helper\Data'); // Instance of Pricing Helper
$price = 1000; //Your Price
$formattedPrice = $priceHelper->currency($price, true, false);
?>
答案 1 :(得分:0)
文件路径:vendor / magento / zendframework1 / library / Zend / Locale / Data / en.xml
在行号3353的currencyFormat部分下,并键入=“ standard”,将模式从<pattern>¤#,##0.00</pattern>
更改为<pattern>¤ #,##,##0.00</pattern>
仍然,在PDP页面和购物车页面摘要中,价格格式不会更改,因为奖金格式来自js,其中Magento使用RegExp函数仅针对美国价格格式。 为此,请更改以下文件中的代码。
文件路径:vendor / magento / module-catalog / view / base / web / js / price-utils.js(首先在主题目录中扩展此文件,然后进行重要的更改。)
在此行下方的功能formatPrice下,注释相应功能中的所有行。
i = parseInt(
amount = Number(Math.round(Math.abs(+amount || 0) + 'e+' + precision) + ('e-' + precision)),
10
) + '';
并在上一行下面添加这组代码。
var x=i;
x=x.toString();
var afterPoint = '';
if(x.indexOf('.') > 0)
afterPoint = x.substring(x.indexOf('.'),x.length);
x = Math.floor(x);
x=x.toString();
var lastThree = x.substring(x.length-3);
var otherNumbers = x.substring(0,x.length-3);
if(otherNumbers != '')
lastThree = ',' + lastThree;
var response = otherNumbers.replace(/\B(?=(\d{2})+(?!\d))/g, ",") + lastThree + afterPoint;
return pattern.replace('%s', response);
部署和`rm -rf var / cache / *
完成
示例:以前显示的价格为453,453,现在将以印度方式显示为4,53,453。