Magento 2: Holen Sie sich den aktuellen Währungscode


22

In Magento 1 können Sie den aktuellen Währungscode folgendermaßen abrufen:

Mage::app()->getStore()->getCurrentCurrencyCode()

Ich frage mich, welche Vorgehensweise in Magento 2 empfohlen wird. In meinem Fall in einem Block.

Antworten:


31

In einem Block

In Magento 2 können Sie die verwenden , \Magento\Store\Model\StoreManagerInterfacedie in einer zugänglichen Variablen gespeichert ist $_storeManagerfür jede Klasse erweitert \Magento\Framework\View\Element\Templateso die meisten der Blockklassen ( Template, Messages, RedirectBlocktypen , aber nicht Textnoch TextList).

Auf diese Weise können Sie in Ihrem Block den folgenden Code direkt eingeben, um den aktuellen Währungscode abzurufen:

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

Es ist nicht erforderlich, das \Magento\Store\Model\StoreManagerInterfacein Ihr Konstrukt einzufügen, da es eine Variable ist, auf die von jeder Blockklasse aus zugegriffen werden kann.

In jeder anderen Klasse

Sie können Folgendes \Magento\Store\Model\StoreManagerInterfacein Ihren Konstruktor einfügen :

protected $_storeManager;

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

Rufen Sie dann die gleiche Funktion wie der Baustein auf:

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

1
Wie kann ich das Standardwährungssymbol auf der HTML-Seite in meinem benutzerdefinierten Modul aufrufen?
Purushotam Sharma

5

Dies ist inspiriert von Magento\Framework\Pricing\Render\Amountund funktioniert in meinem Fall gut (Verhalten wie bei 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();
}

Sie können das Währungssymbol auch erhalten:

/**
 * Get current currency symbol
 *
 * @return string
 */ 
public function getCurrentCurrencySymbol()
{
  return $this->_priceCurrency->getCurrency()->getCurrencySymbol();
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.