Magento 1 में, आप वर्तमान मुद्रा कोड को पुनः प्राप्त कर सकते हैं:
Mage::app()->getStore()->getCurrentCurrencyCode()
मैं सोच रहा हूँ कि Magento में इसे करने का अनुशंसित तरीका क्या है 2. एक ब्लॉक में मेरे मामले में।
Magento 1 में, आप वर्तमान मुद्रा कोड को पुनः प्राप्त कर सकते हैं:
Mage::app()->getStore()->getCurrentCurrencyCode()
मैं सोच रहा हूँ कि Magento में इसे करने का अनुशंसित तरीका क्या है 2. एक ब्लॉक में मेरे मामले में।
जवाबों:
Magento 2 में, आप उपयोग कर सकते हैं \Magento\Store\Model\StoreManagerInterface
एक सुलभ चर में संग्रहीत किया जाता है जो $_storeManager
विस्तार हर वर्ग के लिए \Magento\Framework\View\Element\Template
तो ब्लॉक वर्गों (के सबसे Template
, Messages
, Redirect
ब्लॉक प्रकार लेकिन नहीं Text
है और न ही TextList
)।
अपने ब्लॉक में इस तरह, आप वर्तमान मुद्रा कोड प्राप्त करने के लिए सीधे निम्नलिखित कोड टाइप कर सकते हैं:
$this->_storeManager->getStore()->getCurrentCurrency()->getCode()
\Magento\Store\Model\StoreManagerInterface
अपने निर्माण में इंजेक्ट करने की आवश्यकता नहीं है क्योंकि यह किसी भी ब्लॉक वर्ग से सुलभ चर है।
आप \Magento\Store\Model\StoreManagerInterface
अपने कंस्ट्रक्टर में इंजेक्ट कर सकते हैं :
protected $_storeManager;
public function __construct(\Magento\Store\Model\StoreManagerInterface $storeManager)
{
$this->_storeManager = $storeManager;
}
फिर उसी फ़ंक्शन को ब्लॉक के रूप में कॉल करें:
$this->_storeManager->getStore()->getCurrentCurrency()->getCode()
इससे प्रेरणा मिलती है Magento\Framework\Pricing\Render\Amount
और यह मेरे मामले में अच्छा काम कर रहा है (मैगेंटो की तरह व्यवहार करना):
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();
}
आप मुद्रा प्रतीक भी प्राप्त कर सकते हैं:
/**
* Get current currency symbol
*
* @return string
*/
public function getCurrentCurrencySymbol()
{
return $this->_priceCurrency->getCurrency()->getCurrencySymbol();
}