我们的名字是mud / currency-layer
与 https://currencylayer.com/ 的API集成
Requires
- craftcms/cms: ^3.0.0-RC1
README
与 https://currencylayer.com/ 的API集成
要求
此插件需要Craft CMS 3.0.0-beta.23或更高版本。
安装
要安装此插件,请按照以下说明操作。
-
打开您的终端并转到您的Craft项目
cd /path/to/project
-
然后告诉Composer加载插件
composer require ournameismud/currency-layer
-
在控制面板中,转到设置 → 插件,然后点击Currency Layer的“安装”按钮。
Currency Layer概述
这是一个Currency Layer API的插件层,允许您本地存储和检索货币值。如果您将其与Craft Commerce结合使用,它将为相应的支付货币填充汇率值。
配置Currency Layer
要使用此插件,您将需要从Currency Layer获取一个API密钥。基本账户是免费的,但限制为每月250次请求250 Requests/mo。
插件中可用的选项可以保存在 插件 > 设置
或通过 配置文件。
插件设置包括
- apiKey Currency Layer API密钥
- primaryCurrency 您希望用作转换基础的货币
- apiCache 是否缓存响应(推荐)
- cacheDuration 您希望缓存存储/保存多长时间
使用Currency Layer
您可以通过两种方式之一使用Currency Layer。第一种方式是通过一个操作
。这种方法最好与CRON作业结合使用,定期获取结果。可以通过以下URL触发操作
http://your.domain.com/actions/currency-layer/currency/fetch?currencies=EUR,GBP,USD
,其中currencies参数是您希望检索的货币的逗号分隔列表。请注意,Currency Layer的基本(免费)版本始终默认为USD作为源。
如果您使用Craft Commerce,此操作将直接将汇率保存到您的Commerce设置中。否则,转换值可通过craft.currencyLayer.fetch()
变量获取
craft.currencyLayer.fetch(request,type)
,其中request
是必需的,应是一个对象,其中包含与您所需的Currency Layer API端点对应的关键值属性(请注意,许多端点仅限于付费账户)。type
参数对应于您希望执行的查询类型(默认为live
)。
例如,{% set data = craft.currencyLayer.fetch({ currencies:'EUR,GBP,USD' }) %}
将获取以下端点:https://apilayer.net/api/live?currencies=EUR,GBP,USD&access_key=YOUR_ACCESS_KEY
。响应将是一个值数组,这些值根据您插件设置中定义的货币提供乘数。考虑到这一点,我们可以构建一个宏来执行一些简单的货币转换,例如
{%- macro convert(value = 1, currency) -%}
{% set data = craft.currencyLayer.fetch({ currencies:'EUR,GBP,USD' }) %}
{{- data[currency] * value -}}
{%- endmacro -%}
{% set GBP = 100 %}
{% set EUR = _self.convert(100,'EUR') %}
{% set USD = _self.convert(100,'USD') %}
<dl>
<dt>GBP</dt><dd>{{ GBP }}</dd>
<dt>EUR</dt><dd>{{ EUR }}</dd>
<dt>USD</dt><dd>{{ USD }}</dd>
</dl>
此插件旨在与Craft Commerce货币紧密协作。如果Craft Commerce中已经定义了货币,则选择主要货币的选项将限制在Craft Commerce中可用的那些。如果在插件中选择了新的主要货币,则主要Craft Commerce货币将更新,反之亦然。
Currency Layer 路线图
一些待办事项和潜在功能的想法
- 发布它
由cole007提供