Currency Selector

A dropdown of 33+ common ISO 4217 currencies. Supports single or multi-select and can return the currency code, symbol, or full name. Useful for pricing fields, invoice settings, or any context where editors need to specify a currency.

Settings

SettingDefaultOptionsDescription
Multiplefalseon/offAllow selecting more than one currency.
Return Formatcodecode · symbol · nameWhat get_field() returns for each selected currency.

Included currencies

USD · EUR · GBP · JPY · AUD · CAD · CHF · CNY · INR · BRL · MXN · SGD · HKD · NOK · SEK · DKK · NZD · ZAR · AED · SAR · THB · TRY · IDR · MYR · PHP · PLN · CZK · HUF · RON · ILS · KRW · VND · BDT

Return values

Single select

$currency = get_field('invoice_currency');

// return_format: 'code'
// "USD"

// return_format: 'symbol'
// "$"

// return_format: 'name'
// "US Dollar"

Multi-select

Returns an array of values in the chosen format.

$currencies = get_field('accepted_currencies');
// ['USD', 'EUR', 'GBP']  (return_format: 'code')
// ['$', '€', '£']        (return_format: 'symbol')

Usage

Displaying a price with symbol

$symbol = get_field('currency');  // return_format: 'symbol'
$price  = get_field('price');     // plain number field

if ($symbol && $price !== false) {
    echo '<span class="price">' . esc_html($symbol . number_format((float)$price, 2)) . '</span>';
    // "$1,299.00"
}

Building a currency selector UI

$selected = get_field('preferred_currency'); // return_format: 'code'
// Use the stored code with a JS currency library or Intl.NumberFormat

Multi-currency accepted payments display

$currencies = get_field('accepted_currencies'); // return_format: 'code', multiple: true

if ($currencies) {
    echo '<p>We accept: ';
    echo implode(', ', array_map('esc_html', $currencies));
    echo '</p>';
}

Formatting with PHP’s NumberFormatter

$code   = get_field('product_currency'); // "EUR"
$amount = get_field('product_price');

if ($code && $amount) {
    $fmt = new NumberFormatter('en_US@currency=' . $code, NumberFormatter::CURRENCY);
    echo esc_html($fmt->formatCurrency((float)$amount, $code));
    // "€1,299.00"
}