今天,我将向您展示如何在 Magento 2 中获取货币数据,如代码,汇率和符号。当您使用 Magento 2 平台建立电子商店时,虽然你可以接受多种货币,但是具体取决于目标客户。使用本教程,不仅可以清楚地获取默认和当前货币代码,还可以获取可用的货币代码和允许的货币代码。
Magento 2 获取货币数据概述
-
步骤1:在 Mageplaza_HelloWorld 中声明
-
步骤2:获取 phtml 文件中货币数据的输出
步骤1:在 Mageplaza_HelloWorld 中声明
您将使用模块的块(block)类 Mageplaza_HelloWorld,然后 向模块的块(block)类的构造函数中注入类的对象 StoreManagerInterface 和 Currency。
文件 app/code/Mageplaza/HelloWorld/Block/HelloWorld.php
<?php
namespace Chapagain\HelloWorld\Block;
class HelloWorld extends \Magento\Framework\View\Element\Template
{
protected $_storeManager;
protected $_currency;
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Store\Model\StoreManagerInterface $storeManager,
\Magento\Directory\Model\Currency $currency,
array $data = []
)
{
$this->_storeManager = $storeManager;
$this->_currency = $currency;
parent::__construct($context, $data);
}
/**
* Get store base currency code
*
* @return string
*/
public function getBaseCurrencyCode()
{
return $this->_storeManager->getStore()->getBaseCurrencyCode();
}
/**
* Get current store currency code
*
* @return string
*/
public function getCurrentCurrencyCode()
{
return $this->_storeManager->getStore()->getCurrentCurrencyCode();
}
/**
* Get default store currency code
*
* @return string
*/
public function getDefaultCurrencyCode()
{
return $this->_storeManager->getStore()->getDefaultCurrencyCode();
}
/**
* Get allowed store currency codes
*
* If base currency is not allowed in current website config scope,
* then it can be disabled with $skipBaseNotAllowed
*
* @param bool $skipBaseNotAllowed
* @return array
*/
public function getAvailableCurrencyCodes($skipBaseNotAllowed = false)
{
return $this->_storeManager->getStore()->getAvailableCurrencyCodes($skipBaseNotAllowed);
}
/**
* Get array of installed currencies for the scope
*
* @return array
*/
public function getAllowedCurrencies()
{
return $this->_storeManager->getStore()->getAllowedCurrencies();
}
/**
* Get current currency rate
*
* @return float
*/
public function getCurrentCurrencyRate()
{
return $this->_storeManager->getStore()->getCurrentCurrencyRate();
}
/**
* Get currency symbol for current locale and currency code
*
* @return string
*/
public function getCurrentCurrencySymbol()
{
return $this->_currency->getCurrencySymbol();
}
}
?>
您可以在 vendor/magento/module-store/Model/Store.php 和 endor/magento/module-directory/Model/Currency.php 看到更多的功能函数。
步骤2:获取 phtml 文件中货币数据的输出
在模板文件 phtml 中运行以下命令时,允许获取和打印货币汇率,货币代码和货币符号。
echo $block->getCurrentCurrencySymbol() . '<br />';
echo $block->getCurrentCurrencyCode() . '<br />';
echo $block->getBaseCurrencyCode() . '<br />';
echo $block->getDefaultCurrencyCode() . '<br />';
echo $block->getCurrentCurrencyRate() . '<br />';
print_r($block->getAvailableCurrencyCodes()) . '<br />';
print_r($block->getAllowedCurrencies()) . '<br />';
至此结束,希望对您有所帮助。