通貨コードで通貨記号を取得する方法は?


22

注文オブジェクトから通貨コードを取得できます。通貨記号を使用してどのように導出できますか?任意の提案をいただければ幸いです。


1
この回答のいずれかが有用であると思われる場合は、正解としてフラグを付けてください。
ファビアンブレシュミット

回答:



27

通貨コードを保存します。米ドル

$currency_code = Mage::app()->getStore()->getCurrentCurrencyCode();

通貨記号を保存します。$

$currency_symbol = Mage::app()->getLocale()->currency( $currency_code )->getSymbol();

通貨名を保存します。米ドル

$currency_name = Mage::app()->getLocale()->currency( $currency_code)->getName();

これは1.7では動作しません
ジルレジール

6

以下が働いた。

// store currency symbol eg. $ 
$currency_symbol = Mage::app()->getLocale()->currency( $currency_code )->getSymbol();

3

試してください:

$currencyCode   = '';
$currency       = $order->getOrderCurrency(); //$order object
if (is_object($currency)) {
    $currencyCode = $currency->getCurrencyCode();
}
$currencySymbol = Mage::app()->getLocale()->currency($currencyCode)->getSymbol();
var_dump($currencySymbol);

Mage :: app()-> getLocale()は現在のロケールオブジェクトを返します。私が欲しいのは、ロケールに関係なく、指定された通貨コードの通貨記号を取得することです。
スケシニ

コードを一度確認してください。動作するはずです。
MagePsycho

ロケールに別のシンボルを設定した場合は機能しません。それでもデフォルトの通貨記号が返されます。
シャシッシュ

@MagePsycho:チェック。動作していません。
スケシニ

コードを貼り付けられますか?私はちょうどテストし、それは私のためにうまく働いていました。
MagePsycho

2

任意の通貨コードを使用して、Zend_Localeを使用してシンボルを導出できます。

$curr = new Zend_Currency('en_US');
echo $curr->getSymbol();

ソリューションによると、ロケールを渡してZend_Currencyオブジェクトを作成する必要がありますか?ロケールに関係なく通貨記号を取得する方法があると期待していましたか?つまり、通貨コードを渡すだけで、magento CE 1.7で通貨記号を取得できますか?
スケシニ

あなたは渡すことができます任意の Zendの通貨にロケールを
philwinkle


私の問題の背景はこのようなものです。私はいくつかのウェブサイトを持ついくつかの店を持っています。プロジェクトの外部で実行され、ストアやその他の要因に関係なくすべての注文コレクションを取得するphpファイルを作成しています。その場合、注文の詳細をすべて取得すると、注文の合計金額と通貨コードを個別の値として取得できます。通貨記号を取得して、注文合計をphpファイルに全額で表示したいのですが。ですから、私が望むロケールを何でも置くことはできません。前もって感謝します。
スケシニ

2

変数に値を渡すだけで、現在の通貨形式の価格が返されます

$Formatted_Price = Converted Price with Currency 
$Variable_Price  = Your Variable value
$Formatted_Price= Mage::helper('core')->currency($Variable_Price, true, false);
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.