获取货币数据:code,汇率和符号

今天,我将向您展示如何在 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 />';

至此结束,希望对您有所帮助。

本教程翻译自Mageplaza模块开发系列,其他内容请点击下面链接: