currency_chooser¶
The currency_chooser macro is used to render a group of radio boxes for currencies available in the shop with additional title. It is a part of language_and_currency module but can also be used alone to give more control over how the module is rendered if needed.
Definition¶
Input parameters¶
currencies¶
object represents an object of parameters related to currencies
| Option key | Type | Default | Required | Description |
|---|---|---|---|---|
| options.current | Currency |
null | yes | Currency object of currently active currency in the shop |
| options.list | CurrenciesList |
null | yes | CurrenciesList object of currently available currencies in the shop |
options¶
object represents an object of currency chooser options
| Option key | Type | Default | Required | Description |
|---|---|---|---|---|
| options.instanceId | string |
"" | yes | unique identifier - commonly provided by special module variable |
Example¶
In this example we render a basic currency chooser. To get a list of currencies as well as a currently chosen currency we use Object Api methods getCurrencies() and getShopCurrency().
{% from "@macros/currency_chooser.twig" import currency_chooser %}
{% set currencies = ObjectApi.getCurrencies() %}
{% set shopCurrency = ObjectApi.getShopCurrency() %}
{{
currency_chooser({
current: shopCurrency,
list: currencies
}, {
instanceId: moduleInstance
})
}}
Macro source code¶
{% macro currency_chooser(currencies, options) %}
{% from "@macros/radio_box.twig" import radio_box %}
<fieldset class="radio-box-group">
<legend class="font_size-s">{{ translate('Currency') }}</legend>
{% for currency in currencies.list %}
{{
radio_box({
id: "currency-radio-box-#{options.instanceId}-#{currency.id}",
name: "language-and-currency-currency-#{options.instanceId}",
value: currency.code,
label: "#{currency.shortName} - #{currency.name}",
checked: currency.code == currencies.current.code,
classNames: 'radio-box-group__radio-box'
})
}}
{% endfor %}
</fieldset>
{% endmacro %}