| @@ -153,12 +153,16 @@ | ||
| 153 | 153 | * @param bool $symbol Whether to display the currency symbol. |
| 154 | 154 | * @return string Formatted price. |
| 155 | 155 | */ |
| 156 | 156 | public static function format_price( $price, $currency, $symbol = true ) { |
| 157 | + // Add some basic formatting for the price. | |
| 158 | + $formatted_number = new NumberFormatter( get_locale(), NumberFormatter::DECIMAL ); | |
| 159 | + $price = (float) $formatted_number->parse( $price ); | |
| 160 | + | |
| 157 | 161 | // Fall back to unspecified currency symbol like `¤1,234.05`. |
| 158 | 162 | // @link https://en.wikipedia.org/wiki/Currency_sign_(typography). |
| 159 | 163 | if ( ! array_key_exists( $currency, self::CURRENCIES ) ) { |
| 160 | - return '¤' . number_format_i18n( $price, 2 ); | |
| 164 | + return ( $symbol ? '¤' : '' ) . number_format_i18n( $price, 2 ); | |
| 161 | 165 | } |
| 162 | 166 | |
| 163 | 167 | $currency_details = self::CURRENCIES[ $currency ]; |
| 164 | 168 | |