Ценовой формат Magento 2 неверен в индийских рупиях?
Я использую Magento 2.2.3, моя валюта по умолчанию - INR, но она отображается в неверном формате.
Но это должно быть 77,65,000,00 ф. Ст., Как мы корректируем ценовой формат в настоящее время, как в долларах США.
Я пробовал много способов, но я не могу решить эту проблему, пожалуйста, помогите решить эту проблему
1 ответ
Вы можете установить формат валюты с помощью следующего кода.
<?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);
?>
Благодарю.
Путь к файлу: vendor/magento/zendframework1/library/Zend/Locale/Data/en.xml
В строке номер 3353 в разделе currencyFormat и type = "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);
deploy и `rm -rf var/cache/*
Готово
Пример: цена, ранее отображавшаяся как 453 453, теперь будет отображаться в индийской манере как 4,53 453.