Filter: wpd_woocommerce_currency_symbol
Modify currency symbols used in Alpha Insights price displays.
Description
This filter allows you to customize or replace currency symbols for specific currencies. Useful for displaying custom symbols, adding regional variations, or supporting cryptocurrencies and custom currency codes.
Location
File: includes/functions/wpd-currency-functions.php
Function: wpd_get_woocommerce_currency_symbol()
Line: ~446
Parameters
| Parameter | Type | Description |
|---|---|---|
| $currency_symbol | string | The currency symbol for the given currency code |
| $currency | string | The three-letter currency code (e.g., ‘USD’, ‘EUR’, ‘GBP’) |
Return
Type: string
Description: Modified currency symbol
Example Usage
Add Cryptocurrency Symbols
add_filter( 'wpd_woocommerce_currency_symbol', 'add_crypto_symbols', 10, 2 );
function add_crypto_symbols( $symbol, $currency )
{
$crypto_symbols = array(
'BTC' => '₿',
'ETH' => 'Ξ',
'LTC' => 'Ł',
'USDT' => '₮',
'DOGE' => 'Ð'
);
if ( isset( $crypto_symbols[$currency] ) )
{
return $crypto_symbols[$currency];
}
return $symbol;
}
Use Currency Code Instead of Symbol
add_filter( 'wpd_woocommerce_currency_symbol', 'use_currency_code', 10, 2 );
function use_currency_code( $symbol, $currency )
{
// Display currency code (USD, EUR) instead of symbol ($, €)
return $currency;
}
Custom Symbol for Specific Currency
add_filter( 'wpd_woocommerce_currency_symbol', 'custom_usd_symbol', 10, 2 );
function custom_usd_symbol( $symbol, $currency )
{
// Use "USD $" instead of just "$"
if ( $currency === 'USD' )
{
return 'USD $';
}
// Use custom Euro symbol
if ( $currency === 'EUR' )
{
return 'EUR €';
}
return $symbol;
}
Regional Currency Variations
add_filter( 'wpd_woocommerce_currency_symbol', 'regional_symbols', 10, 2 );
function regional_symbols( $symbol, $currency )
{
// Different dollar symbol for different regions
$dollar_currencies = array( 'USD', 'CAD', 'AUD', 'NZD', 'SGD' );
if ( in_array( $currency, $dollar_currencies ) )
{
// Show which dollar it is
return $currency . ' $';
}
return $symbol;
}
Custom Internal Currency
add_filter( 'wpd_woocommerce_currency_symbol', 'custom_currency', 10, 2 );
function custom_currency( $symbol, $currency )
{
// Add support for custom internal currency
if ( $currency === 'CREDITS' )
{
return 'CR';
}
if ( $currency === 'POINTS' )
{
return 'P';
}
return $symbol;
}
HTML-Enhanced Symbols
add_filter( 'wpd_woocommerce_currency_symbol', 'html_symbols', 10, 2 );
function html_symbols( $symbol, $currency )
{
// Add styling or icons to symbols
if ( $currency === 'USD' )
{
return '$';
}
if ( $currency === 'EUR' )
{
return '€';
}
return $symbol;
}
Multi-Currency Store Symbol Prefix
add_filter( 'wpd_woocommerce_currency_symbol', 'prefix_all_symbols', 10, 2 );
function prefix_all_symbols( $symbol, $currency )
{
// In multi-currency stores, always show currency code
$store_currencies = get_option( 'active_currencies', array( 'USD' ) );
if ( count( $store_currencies ) > 1 )
{
return $currency . ' ' . $symbol;
}
return $symbol;
}
Context-Aware Symbols
add_filter( 'wpd_woocommerce_currency_symbol', 'context_aware_symbol', 10, 2 );
function context_aware_symbol( $symbol, $currency )
{
// In reports, use abbreviated symbol
if ( isset( $_GET['page'] ) && strpos( $_GET['page'], 'reports' ) !== false )
{
$abbreviated = array(
'USD' => '$',
'EUR' => '€',
'GBP' => '£',
'JPY' => '¥'
);
return isset( $abbreviated[$currency] ) ? $abbreviated[$currency] : $currency;
}
return $symbol;
}
Best Practices
- Always return a string value
- Keep symbols short (1-3 characters ideally)
- Test with RTL languages if using directional symbols
- Consider how symbols display at different sizes
- Ensure symbols are distinguishable from each other
- Use standard Unicode symbols when available
Important Notes
- This affects Alpha Insights displays only (not WooCommerce checkout)
- Symbol must be UTF-8 compatible
- HTML is allowed but use sparingly for performance
- Empty string will hide the symbol
- Filter runs every time a price is formatted
Default Supported Currencies
Alpha Insights inherits currency symbols from WooCommerce, including:
- USD – $ (US Dollar)
- EUR – € (Euro)
- GBP – £ (British Pound)
- JPY – ¥ (Japanese Yen)
- AUD – $ (Australian Dollar)
- CAD – $ (Canadian Dollar)
- CHF – CHF (Swiss Franc)
- …and 100+ more currencies
Currency Code Format
Currency codes follow ISO 4217 standard:
- Always 3 uppercase letters
- First 2 letters = country code
- Last letter = currency name
- Example: USD (US Dollar), EUR (Euro), JPY (Japanese Yen)
Unicode Symbols
Common currency symbols and their Unicode:
$ U+0024 Dollar
€ U+20AC Euro
£ U+00A3 Pound
¥ U+00A5 Yen
₹ U+20B9 Indian Rupee
₽ U+20BD Russian Ruble
₿ U+20BF Bitcoin
₺ U+20BA Turkish Lira
₴ U+20B4 Ukrainian Hryvnia
₱ U+20B1 Philippine Peso
CSS Styling
/* Style currency symbols */
.currency-usd {
color: #28a745;
font-weight: 600;
}
.currency-eur {
color: #0066cc;
font-weight: 600;
}
.woocommerce-Price-currencySymbol {
font-weight: normal;
opacity: 0.8;
}
Debugging
add_filter( 'wpd_woocommerce_currency_symbol', 'debug_currency_symbol', 999, 2 );
function debug_currency_symbol( $symbol, $currency )
{
error_log( sprintf(
'Currency: %s | Symbol: %s',
$currency,
$symbol
));
return $symbol;
}
Related Filters
- wpd_price – Modify complete price HTML output
woocommerce_currency_symbols– Modify base currency symbol array
Related Functions
wpd_get_woocommerce_currency_symbol( $currency )– Get currency symbolwpd_get_store_currency()– Get store’s default currencywpd_store_price( $price, $args )– Format price for display