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\StoreManagerInterfaceque se almacena en una variable accesible $_storeManagerpara todas las clases que se extiende \Magento\Framework\View\Element\Templatede modo mayoría de las clases de bloques ( Template, Messages, Redirecttipos de bloques, pero no Texttampoco 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\StoreManagerInterfaceen su construcción, ya que es una variable accesible desde cualquier clase de bloque.
Puede inyectar el \Magento\Store\Model\StoreManagerInterfaceen 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\Amounty funciona bien en mi caso (comportándose como Magento):También puede obtener el símbolo de moneda:
fuente