120 lines
3.8 KiB
PHP
120 lines
3.8 KiB
PHP
<?php
|
|
/**
|
|
* Currency Functions
|
|
*
|
|
* @package easy-digital-downloads
|
|
* @copyright Copyright (c) 2021, Sandhills Development, LLC
|
|
* @license GPL2+
|
|
* @since 3.0
|
|
*/
|
|
|
|
use EDD\Currency\Currency;
|
|
use EDD\Currency\Money_Formatter;
|
|
|
|
/**
|
|
* Get Currencies
|
|
*
|
|
* @since 1.0
|
|
* @return array $currencies A list of the available currencies
|
|
*/
|
|
function edd_get_currencies() {
|
|
$currencies = array(
|
|
'USD' => __( 'US Dollars ($)', 'easy-digital-downloads' ),
|
|
'EUR' => __( 'Euros (€)', 'easy-digital-downloads' ),
|
|
'GBP' => __( 'Pound Sterling (£)', 'easy-digital-downloads' ),
|
|
'AUD' => __( 'Australian Dollars ($)', 'easy-digital-downloads' ),
|
|
'BRL' => __( 'Brazilian Real (R$)', 'easy-digital-downloads' ),
|
|
'CAD' => __( 'Canadian Dollars ($)', 'easy-digital-downloads' ),
|
|
'CZK' => __( 'Czech Koruna', 'easy-digital-downloads' ),
|
|
'DKK' => __( 'Danish Krone', 'easy-digital-downloads' ),
|
|
'HKD' => __( 'Hong Kong Dollar ($)', 'easy-digital-downloads' ),
|
|
'HUF' => __( 'Hungarian Forint', 'easy-digital-downloads' ),
|
|
'ILS' => __( 'Israeli Shekel (₪)', 'easy-digital-downloads' ),
|
|
'JPY' => __( 'Japanese Yen (¥)', 'easy-digital-downloads' ),
|
|
'MYR' => __( 'Malaysian Ringgits', 'easy-digital-downloads' ),
|
|
'MXN' => __( 'Mexican Peso ($)', 'easy-digital-downloads' ),
|
|
'NZD' => __( 'New Zealand Dollar ($)', 'easy-digital-downloads' ),
|
|
'NOK' => __( 'Norwegian Krone', 'easy-digital-downloads' ),
|
|
'PHP' => __( 'Philippine Pesos', 'easy-digital-downloads' ),
|
|
'PLN' => __( 'Polish Zloty', 'easy-digital-downloads' ),
|
|
'SGD' => __( 'Singapore Dollar ($)', 'easy-digital-downloads' ),
|
|
'SEK' => __( 'Swedish Krona', 'easy-digital-downloads' ),
|
|
'CHF' => __( 'Swiss Franc', 'easy-digital-downloads' ),
|
|
'TWD' => __( 'Taiwan New Dollars', 'easy-digital-downloads' ),
|
|
'THB' => __( 'Thai Baht (฿)', 'easy-digital-downloads' ),
|
|
'INR' => __( 'Indian Rupee (₹)', 'easy-digital-downloads' ),
|
|
'TRY' => __( 'Turkish Lira (₺)', 'easy-digital-downloads' ),
|
|
'RIAL' => __( 'Iranian Rial (﷼)', 'easy-digital-downloads' ),
|
|
'RUB' => __( 'Russian Rubles', 'easy-digital-downloads' ),
|
|
'AOA' => __( 'Angolan Kwanza', 'easy-digital-downloads' ),
|
|
);
|
|
|
|
return apply_filters( 'edd_currencies', $currencies );
|
|
}
|
|
|
|
/**
|
|
* Accepts an amount (ideally from the database, unmodified) and formats it
|
|
* for display. The amount itself is formatted and the currency prefix/suffix
|
|
* is applied and positioned.
|
|
*
|
|
* @since 3.0
|
|
*
|
|
* @param int|float|string $amount
|
|
* @param string $currency
|
|
*
|
|
* @return string
|
|
*/
|
|
function edd_display_amount( $amount, $currency ) {
|
|
$formatter = new Money_Formatter( $amount, new Currency( $currency ) );
|
|
|
|
return $formatter->format_for_display()
|
|
->apply_symbol();
|
|
}
|
|
|
|
/**
|
|
* Get the store's set currency
|
|
*
|
|
* @since 1.5.2
|
|
* @return string The currency code
|
|
*/
|
|
function edd_get_currency() {
|
|
$currency = edd_get_option( 'currency', 'USD' );
|
|
return apply_filters( 'edd_currency', $currency );
|
|
}
|
|
|
|
/**
|
|
* Given a currency determine the symbol to use. If no currency given, site default is used.
|
|
* If no symbol is determined, the currency string is returned.
|
|
*
|
|
* @since 2.2
|
|
*
|
|
* @param string $currency The currency string
|
|
*
|
|
* @return string The symbol to use for the currency
|
|
*/
|
|
function edd_currency_symbol( $currency = '' ) {
|
|
if ( empty( $currency ) ) {
|
|
$currency = edd_get_currency();
|
|
}
|
|
|
|
$currency = new Currency( $currency );
|
|
|
|
return $currency->symbol;
|
|
}
|
|
|
|
/**
|
|
* Get the name of a currency
|
|
*
|
|
* @since 2.2
|
|
*
|
|
* @param string $code The currency code
|
|
*
|
|
* @return string The currency's name
|
|
*/
|
|
function edd_get_currency_name( $code = 'USD' ) {
|
|
$currencies = edd_get_currencies();
|
|
$name = isset( $currencies[ $code ] ) ? $currencies[ $code ] : $code;
|
|
return apply_filters( 'edd_currency_name', $name );
|
|
}
|
|
|