Magento 2: รับรหัสสกุลเงินปัจจุบัน


22

ใน Magento 1 คุณสามารถดึงรหัสสกุลเงินปัจจุบันได้โดยทำ:

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

ฉันสงสัยว่าวิธีที่แนะนำให้ทำใน Magento 2 คืออะไรในกรณีของฉันในบล็อก

คำตอบ:


31

ในแบบบล็อก

ในวีโอไอพี 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()

1
ฉันจะเรียกสัญลักษณ์สกุลเงินเริ่มต้นในหน้า phtml ในโมดูลที่กำหนดเองได้อย่างไร
Purushotam Sharma

5

สิ่งนี้ได้แรงบันดาลใจมาจากMagento\Framework\Pricing\Render\Amountและมันใช้งานได้ดีในกรณีของฉัน (ทำตัวเหมือน Magento):

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();
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.