Magento 2:現在の通貨コードを取得する


回答:


31

ブロックで

Magentoの2では、あなたは使用することができます\Magento\Store\Model\StoreManagerInterfaceアクセス変数に格納されている$_storeManager拡張すべてのクラスのために\Magento\Framework\View\Element\Template(ブロッククラスのように、ほとんどTemplateMessagesRedirectブロックタイプではなく、TextTextList)を。

このようにして、ブロックで次のコードを直接入力して、現在の通貨コードを取得できます。

$this->_storeManager->getStore()->getCurrentCurrency()->getCode()

\Magento\Store\Model\StoreManagerInterfaceブロッククラスからアクセス可能な変数であるため、構造に注入する必要はありません。

他のクラスで

\Magento\Store\Model\StoreManagerInterfaceコンストラクタにを注入できます:

protected $_storeManager;

public function __construct(\Magento\Store\Model\StoreManagerInterface $storeManager)
{
    $this->_storeManager = $storeManager;
}

次に、ブロックと同じ関数を呼び出します。

$this->_storeManager->getStore()->getCurrentCurrency()->getCode()

1
カスタムモジュールのphtmlページでデフォルトの通貨記号を呼び出すにはどうすればよいですか?
プルショタムシャルマ

5

これはMagento\Framework\Pricing\Render\Amount私のインスピレーションからインスピレーションを得ており、うまく機能しています(Magentoのように振る舞います):

protected $_priceCurrency;

public function __construct(
  ...
  \Magento\Framework\Pricing\PriceCurrencyInterface $priceCurrency,
  ...
)
{           
  $this->_priceCurrency = $priceCurrency;
  ...
}

/**
 * Get current currency code
 *
 * @return string
 */ 
public function getCurrentCurrencyCode()
{
  return $this->_priceCurrency->getCurrency()->getCurrencyCode();
}

通貨記号も取得できます:

/**
 * Get current currency symbol
 *
 * @return string
 */ 
public function getCurrentCurrencySymbol()
{
  return $this->_priceCurrency->getCurrency()->getCurrencySymbol();
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.