2017-04-23 129 views
0

我需要改變數字格式我的整個網站作爲不同的國家使用不同的格式,如如何更改整個WordPress網站的數字格式?

  • 美國 - $ 1,234,567.89美元
  • 加拿大 - $ 1,234,567.89 CAD
  • 大不列顛 - £1.234.567,89 GBP
  • 歐洲 - €1.234.567,89 EUR

默認情況下,它使用美國國家格式,但我需要的是歐洲。

什麼我能做的就是用

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

這個簡單的功能,這對我來說工作正常,但我必須每天我與一些工作時間使用它,我想這能使用一次像在wp-config.php或function.php文件中,這將改變整個網站的格式。

可能嗎?

+1

通過提供示例,您可以使其看起來像您希望它是動態的。就像人們改變網站的語言一樣,數字格式(價格)也以不同的格式顯示。那是你要的嗎?或者你只是想從美國轉向歐盟?你正在使用價格,你使用一個網上商店插件或你自己放在一起的一些代碼? – RST

+0

是的,它是動態的,但我不希望它與語言連接,我想要做的是我將在我的選項頁面中選擇管理員可以選擇任何格式的選項。 實際上,我正在爲我的客戶開發一個LMS插件,在那裏我需要這個函數,而不僅僅是價格計算,如果長度,高度等,如果教師寫200,12英尺它將像200.12英尺的前端。 謝謝 –

回答

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'); 
+0

謝謝,但我沒有使用WooCommerce,而且這種格式不僅僅是價格,我在我的網站中使用的任何數字都將遵循相同的格式,例如,如果某處是2000英尺,則打印時它將是2.000英尺或回聲.... –

+1

Everywhere WordPress輸出價格/貨幣/任何東西,有一個主題函數調用它以特定的方式顯示。你可能需要的是創建你自己的功能,幷包裝主題中的所有輸出。除非你的主題已經在做,然後你就可以自定義現有的功能 –

+0

謝謝,這實際上是我打算做的,但我一直在尋找是否有更好的選擇。 :) –

1

我假設格式的admin設置存儲在數據庫中。 閱讀設置和常量

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

你可以把它擴展到您的需求。