Di Magento 1, Anda dapat mengambil kode mata uang saat ini dengan melakukan:
Mage::app()->getStore()->getCurrentCurrencyCode()
Saya bertanya-tanya apa cara yang disarankan untuk melakukannya di Magento 2. Dalam kasus saya di blok.
Dalam Magento 2, Anda dapat menggunakan \Magento\Store\Model\StoreManagerInterface
yang disimpan dalam sebuah variabel dapat diakses $_storeManager
untuk setiap kelas memperluas \Magento\Framework\View\Element\Template
sehingga sebagian besar kelas blok ( Template
, Messages
, Redirect
jenis blok tapi tidak Text
juga TextList
).
Dengan cara ini di blok Anda, Anda bisa langsung mengetik kode berikut untuk mendapatkan kode mata uang saat ini:
$this->_storeManager->getStore()->getCurrentCurrency()->getCode()
Tidak perlu menyuntikkan \Magento\Store\Model\StoreManagerInterface
dalam konstruksi Anda karena itu adalah variabel yang dapat diakses dari kelas blok apa pun.
Anda dapat menyuntikkan \Magento\Store\Model\StoreManagerInterface
di konstruktor Anda:
protected $_storeManager;
public function __construct(\Magento\Store\Model\StoreManagerInterface $storeManager)
{
$this->_storeManager = $storeManager;
}
Kemudian panggil fungsi yang sama dengan blok:
$this->_storeManager->getStore()->getCurrentCurrency()->getCode()
Ini mengambil inspirasi dari
Magento\Framework\Pricing\Render\Amount
dan berfungsi dengan baik dalam kasus saya (berperilaku seperti Magento):Anda juga bisa mendapatkan simbol mata uang:
sumber