如何更改整个wordpress网站的数字格式?

时间:2017-04-23 10:24:19

标签: php wordpress

我需要更改整个网站的数字格式,因为不同的国家/地区使用不同的格式,例如

  • 美国 - $ 1,234,567.89 USD
  • 加拿大 - $ 1,234,567.89 CAD
  • 英国 - £1.234.567,89英镑
  • 欧洲 - €1.234.567,89 EUR

默认情况下,它使用美国格式,但我需要它是欧洲格式。

我能做的就是使用

number_format($number, 2, ',', '.'); 

这个简单的功能,对我来说很好用,但每次我使用数字时都必须使用它。我需要在wp-config.php或function.php文件中使用它一次,这样就可以了更改整个网站的格式。

有可能吗?

3 个答案:

答案 0 :(得分:2)

您可以使用wp过滤器来准备常用功能,您可以在其中为不同国家/地区定义数字格式。

apply_filters('number_format_i18n',change_number_format);

number format i18n

developer number format i18n

答案 1 :(得分:1)

我假设格式的管理员设置存储在数据库中。 读取该设置并使用常量中的值

$setting = array();
$setting = get_option('formatsetting');
const PRECISION = $setting['precision'];
const DECIMALS  = $setting['decimals'];
const THOUSANDS = $setting['thousands'];

然后您可以像这样使用number_format

number_format($number, PRECISION, DECIMALS, THOUSANDS);

您可以根据自己的需要进行扩展。

答案 2 :(得分:0)

假设您正在使用WooCommerce ..
您可以创建一个过滤器,修改价格的格式,然后根据您的语言/货币加载。

function change_product_price_display( $price ) {
    if( $lang == 'EN' ) {
      $price = number_format( $price, 2, ',', '.' ); 
      return $price;
    }

    return $price;
}
add_filter( 'woocommerce_get_price_html', 'change_product_price_display' );
add_filter( 'woocommerce_cart_item_price', 'change_product_price_display' );
相关问题