Magento 2: geçerli para birimi kodunu al


22

Magento 1’de, geçerli para birimi kodunu aşağıdakileri yaparak alabilirsiniz:

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

Magento 2'de yapmanın önerilen yolunun ne olduğunu merak ediyorum. Benim durumumda bir blok halinde.

Yanıtlar:


31

Bir blokta

Magento 2'de, kullanabilir \Magento\Store\Model\StoreManagerInterfaceerişilebilir bir değişken olarak depolanan $_storeManageruzanan her sınıf için \Magento\Framework\View\Element\Templateblok sınıflarına (kadar en Template, Messages, Redirectblok tipleri değil Textde TextList).

Bu şekilde, bloğunuza, geçerli para birimi kodunu almak için doğrudan aşağıdaki kodu yazabilirsiniz:

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

\Magento\Store\Model\StoreManagerInterfaceHerhangi bir blok sınıfından erişilebilen bir değişken olduğundan, yapınıza enjekte etmeye gerek yok .

Başka herhangi bir sınıfta

Yapıcınıza şunu enjekte edebilirsiniz \Magento\Store\Model\StoreManagerInterface:

protected $_storeManager;

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

Sonra blokla aynı işlevi çağırın:

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

1
Özel modülümde phtml sayfasındaki varsayılan para birimi sembolünü nasıl arayabilirim?
Purushotam Sharma,

5

Bu ilham alıyor Magento\Framework\Pricing\Render\Amountve benim durumumda iyi çalışıyor (Magento gibi davranıyor):

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();
}

Para birimi sembolünü de alabilirsiniz:

/**
 * Get current currency symbol
 *
 * @return string
 */ 
public function getCurrentCurrencySymbol()
{
  return $this->_priceCurrency->getCurrency()->getCurrencySymbol();
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.