ecommpro/module-custom-currency

为 Magento 2 定制的货币

安装次数: 3,383

依赖项: 0

建议者: 0

安全: 0

星标: 20

关注者: 3

分支: 9

开放性问题: 6

类型:magento2-module

1.1.6 2022-09-17 05:10 UTC

This package is auto-updated.

Last update: 2024-09-17 09:30:35 UTC


README

  • 没有关键的重写。
  • 添加您想要的任意数量的货币。
  • 自定义默认货币,如 USD 或 EUR。
  • 自定义精度(小数位数)。
  • 预加载通用货币 Point 以及一些顶级加密货币,如 Bitcoin (BTC)Ethereum (ETH)

安装

composer require ecommpro/module-custom-currency

执行以下命令

php bin/magento module:enable EcommPro_CustomCurrency
php bin/magento setup:upgrade

访问 Magento 2 管理面板并配置该模块。

用户指南

描述

EcommPro 自定义货币允许您直接从 Magento 管理员创建和编辑新货币。管理这些货币的选项,如小数精度、符号(图像、表情符号或文本)、位置等。建议用于加密货币。

关于 货币Magento 2 有所欠缺。

货币系统高度依赖于 PHP intl ICU 扩展。

这并不坏。Intl 扩展已经过战斗测试并且功能强大。

但它只覆盖官方法定货币。

那么使用自定义货币,如 points 呢?或者关于日益流行的 加密货币,如 Bitcoin (BTC)、Tron (TRX)、Ripple (XRP) 等呢?

目前 Magento 2 核心没有提供解决方案。

我们创建了一个模块来管理 自定义货币,预加载了一些有用的数据,如 points 货币和一些最受欢迎的加密货币。

我们决定将其发布在 GitHub 上作为开源。

https://github.com/ecommpro/custom-currency

我们希望这对您有所帮助。

我可以用 EcommPro 自定义货币做什么?

  • 创建您需要的任意数量的硬币。
  • 启用、禁用或删除硬币。
  • 给它们一个代码,一个单数和复数名称。
  • 设置小数精度,非常适合加密货币。
  • 设置符号位置(在价格之前或之后)。
  • 管理货币符号作为文本、表情符号或图像。

模块指南

您可以从侧边菜单轻松访问模块选项,商店 > 货币 > EcommPro 自定义货币

您可以从 Magento 网格轻松列出和管理新货币。

Image 2

使用各种可能选项自定义您的硬币,如小数位数、位置、名称或符号。

Image 3

从 Magento 硬币配置部分选择您的新硬币。

Image 4

转到列表或产品列表,您将看到新货币的实际应用。

Image 5

您可以从管理员页面或通过依赖注入 XML 添加自己的货币。

管理员页面

访问 商店 > 配置 > EcommPro > 自定义货币 并在文本框中添加您想要的货币,用空行分隔,格式为

{code}
{singular}
{plural}

示例

XMPL
Examplium
Exampliums

DOGE
DogeCoin
DogeCoins

依赖注入 XML

如果您希望在安装时使货币可用,则应选择此方法。

将货币作为 EcommPro\CustomCurrency\Model\Config 对象构造函数的数组数组参数添加

<type name="EcommPro\CustomCurrency\Model\Config">
    <arguments>
        <argument name="currencies" xsi:type="array">
            <item name="XMPL" xsi:type="array">
                <item name="code" xsi:type="string">XMPL</item>
                <item name="singular" xsi:type="string">Examplium</item>
                <item name="plural" xsi:type="string">Exampliums</item>
            </item>
            <item name="DOGE" xsi:type="array">
                <item name="code" xsi:type="string">DOGE</item>
                <item name="singular" xsi:type="string">DogeCoin</item>
                <item name="plural" xsi:type="string">DogeCoins</item>
            </item>
        </argument>
    </arguments>
</type>

内部

此模块基于以下观察结果

  • 如果之前已加载,则 Magento 类加载器不会加载类。
  • Magento 不检查由 Magento\Framework\Locale\Bundle\CurrencyBundle 返回的 PHP ResourceBundle 的类型,而只是将其作为数组使用,因为它实现了数组访问和迭代。
  • 在magento核心文件中,Magento\Framework\Locale\Bundle\CurrencyBundle 总是通过构造函数使用 new 实例化: (new CurrencyBundle())
grep -hr CurrencyBundle vendor/*
use Magento\Framework\Locale\Bundle\CurrencyBundle;
            $currencies = (new CurrencyBundle())->get($this->localeResolver->getLocale())['Currencies'];
use Magento\Framework\Locale\Bundle\CurrencyBundle as CurrencyBundle;
                        $allCurrencies = (new CurrencyBundle())->get(
class CurrencyBundle extends DataBundle
use Magento\Framework\Locale\Bundle\CurrencyBundle;
        $currencies = (new CurrencyBundle())->get($this->localeResolver->getLocale())['Currencies'] ?: [];
        $currencyBundle = new \Magento\Framework\Locale\Bundle\CurrencyBundle();
use Magento\Framework\Locale\Bundle\CurrencyBundle;
        $currencies = (new CurrencyBundle())->get(Resolver::DEFAULT_LOCALE)['Currencies'];

因此,关键思想是加载我们自己的 Magento\Framework\Locale\Bundle\CurrencyBundle 版本(一个非常简单的类),覆盖 get 方法,并返回一个修改后的数组,模仿原始的 ResourceBundle

帮助和信息

如果您需要帮助或专业的服务,您可以通过以下表单发送电子邮件来获得支持: https://ecomm.pro/en/contact-us/