En Magento 1, puede recuperar el código de moneda actual haciendo lo siguiente:
Mage::app()->getStore()->getCurrentCurrencyCode()
Me pregunto cuál es la forma recomendada de hacerlo en Magento 2. En mi caso en un bloque.
En Magento 2, se puede utilizar el \Magento\Store\Model\StoreManagerInterface
que se almacena en una variable accesible $_storeManager
para todas las clases que se extiende \Magento\Framework\View\Element\Template
de modo mayoría de las clases de bloques ( Template
, Messages
, Redirect
tipos de bloques, pero no Text
tampoco TextList
).
De esta manera, en su bloque, puede escribir directamente el siguiente código para obtener el código de moneda actual:
$this->_storeManager->getStore()->getCurrentCurrency()->getCode()
No es necesario inyectar \Magento\Store\Model\StoreManagerInterface
en su construcción, ya que es una variable accesible desde cualquier clase de bloque.
Puede inyectar el \Magento\Store\Model\StoreManagerInterface
en su constructor:
protected $_storeManager;
public function __construct(\Magento\Store\Model\StoreManagerInterface $storeManager)
{
$this->_storeManager = $storeManager;
}
Luego llame a la misma función que el bloque:
$this->_storeManager->getStore()->getCurrentCurrency()->getCode()
Esto se inspira
Magento\Framework\Pricing\Render\Amount
y funciona bien en mi caso (comportándose como Magento):También puede obtener el símbolo de moneda:
fuente