php 如何更改整个WordPress站点的数字格式?

i5desfxk  于 2023-06-20  发布在  PHP
关注(0)|答案(3)|浏览(121)

我需要改变我的整个网站作为不同的国家使用不同的格式,如数字格式

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

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

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

这个简单的函数,这对我来说很好,但我必须使用它每次我与数字工作,我需要这个使用一次像在wp-config.php或function.php文件,这将改变整个网站的格式.
这可能吗?

lsmd5eda

lsmd5eda1#

你可以使用wp过滤器准备共同的功能,在其中你可以定义不同国家的数字格式。
apply_filters('number_format_i18n',change_number_format);
number format i18n
developer number format i18n

rseugnpd

rseugnpd2#

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

$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);

您可以将其扩展到您的需要。

vx6bjr1n

vx6bjr1n3#

假设您正在使用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' );

相关问题