Magento 2: ottieni il codice valuta corrente


22

In Magento 1, è possibile recuperare il codice valuta corrente effettuando:

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

Mi chiedo quale sia il modo consigliato di farlo in Magento 2. Nel mio caso in un blocco.

Risposte:


31

In un blocco

In Magento 2, è possibile utilizzare il \Magento\Store\Model\StoreManagerInterfaceche è memorizzato in una variabile accessibili $_storeManagerper ogni classe che estende \Magento\Framework\View\Element\Templatequindi la maggior parte delle classi (blocco Template, Messages, Redirecttipi di blocco ma non Textne TextList).

In questo modo nel tuo blocco, puoi digitare direttamente il seguente codice per ottenere il codice valuta corrente:

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

Non c'è bisogno di iniettare il \Magento\Store\Model\StoreManagerInterfacenel tuo costrutto in quanto è una variabile accessibile da qualsiasi classe di blocco.

In qualsiasi altra classe

Puoi iniettare il \Magento\Store\Model\StoreManagerInterfacenel tuo costruttore:

protected $_storeManager;

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

Quindi chiama la stessa funzione del blocco:

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

1
Come posso chiamare il simbolo di valuta predefinito nella pagina phtml nel mio modulo personalizzato?
Purushotam Sharma,

5

Questo prende ispirazione Magento\Framework\Pricing\Render\Amounte sta funzionando bene nel mio caso (comportandosi come 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();
}

Puoi anche ottenere il simbolo della valuta:

/**
 * Get current currency symbol
 *
 * @return string
 */ 
public function getCurrentCurrencySymbol()
{
  return $this->_priceCurrency->getCurrency()->getCurrencySymbol();
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.