public static function formatPrice($price, $currency, $context, $languageCode = null)
{
if ($languageCode === null) {
$languageCode = ipContent()->getCurrentLanguage()->getCode();
}
$data = array('price' => $price, 'currency' => $currency, 'context' => $context);
$formattedPrice = ipJob('ipFormatPrice', $data);
if ($formattedPrice === null) {
if (function_exists('numfmt_create') && function_exists('numfmt_format_currency')) {
$locale = str_replace('-', '_', $languageCode);
$fmt = numfmt_create($locale, \NumberFormatter::CURRENCY);
$formattedPrice = numfmt_format_currency($fmt, $price / 100, strtoupper($currency));
if ($formattedPrice !== false && $formattedPrice != 'NaN') {
return $formattedPrice;
}
}
$formattedPrice = round($data['price'] / 100, 2) . ' ' . $data['currency'];
}
return $formattedPrice;
}