Skip to content Skip to sidebar

This thread is resolved. Here is a description of the problem and solution.

Problem:
The client is experiencing issues with currency symbols not displaying correctly on their multilingual WooCommerce site. They have to manually add code to their functions.php file to switch currency symbols between English and Arabic, depending on the current language. Despite using WPML's String Translation for the currency, the Arabic currency symbol disappears or does not display correctly when the site language is switched.

Solution:
1. Understand that WPML does not control how WooCommerce displays or formats currency symbols. The issue arises from the custom code used to switch currency symbols based on the site's current language.
2. Remove any currency symbol translations from WPML String Translation to avoid conflicts, as these symbols are fixed and do not require translation.
3. Ensure that the custom filter code is correctly implemented to change the currency symbol based on the current language. This code is necessary because WooCommerce does not automatically adjust currency symbols based on WPML's language settings.

If this solution does not resolve your issue or seems outdated, we recommend opening a new support ticket. We also highly recommend checking related known issues at https://wpml.org/known-issues/, verifying the version of the permanent fix, and confirming that you have installed the latest versions of themes and plugins. For further assistance, please visit our support forum at https://wpml.org/forums/.

This is the technical support forum for WPML - the multilingual WordPress plugin.

Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.

Tagged: 

This topic contains 7 replies, has 1 voice.

Last updated by Andreas W. 1 month, 2 weeks ago.

Assisted by: Andreas W..

Author Posts
March 4, 2026 at 9:11 am #17871039

emirates-literatureF

each time aech time i have to access cpanel and function.php server to write a script and fix the currency symbol, cant WPML fix it once and for all please??

March 4, 2026 at 9:13 am #17871047

emirates-literatureF

hidden link check the currency its arabic when the website is english

i have to always the below to functions.php, cant this be fixed with string translation and currency translator:
AED FOR ENGLISH
and د.ا  for arabic.

add_filter('woocommerce_currency_symbol', 'change_existing_currency_symbol', 10, 2);
function change_existing_currency_symbol( $currency_symbol, $currency ) {
// Check for WPML current language
$my_current_lang = apply_filters( 'wpml_current_language', NULL );

switch( $currency ) {
case 'SAR': // Change SAR to your currency code (e.g., AED, KWD)
if($my_current_lang == 'en'){
$currency_symbol = 'SAR'; // English symbol
} else {
$currency_symbol = 'ر.س'; // Arabic symbol
}
break;
}
return $currency_symbol;
}

March 5, 2026 at 9:16 am #17874084

Dražen
Supporter

Languages: English (English )

Timezone: Europe/Zagreb (GMT+02:00)

Hello,

Thank you for contacting us.

Please note that currency display and formatting are controlled by WooCommerce, not by WPML. WPML does not modify or control how currencies such as AED are displayed on the site nor how they are created.

From what I can see, it appears you may be using custom code to adjust the currency display. If that custom code is not working as expected, I would recommend checking it further with the developer.

If there is anything related specifically to WPML functionality or translation or you having some issue with WPML that we can help with, please let us know and we will be glad to assist.

Regards,
Drazen

March 5, 2026 at 9:34 am #17874144

emirates-literatureF

But when I translated AED currency to arabic here: hidden link in string translation in WPML, the arabic currency disappeared, and it's not showing no in the arabic website here: hidden link + in WooCommerce ==>settings-->payments or general here: hidden link the 2 symbols of AED are showing properly in WooCommerce settings, so this is not a WooCommerce issue i believe.

March 5, 2026 at 9:37 am #17874176

emirates-literatureF

i had a different ticket already a year ago here: https://wpml.org/forums/topic/currency-language-2/ for the same purpose, but the answer has been removed from my ticket. I don't know why, it's there already. It was there, but someone from WPML removed the support and reply from the admin!!!!

March 5, 2026 at 9:55 pm #17876320

Andreas W.
WPML Supporter since 12/2018

Languages: English (English ) Spanish (Español ) German (Deutsch )

Timezone: America/Lima (GMT-05:00)

Hello,

Your filter doesn’t register any strings in WPML String Translation.

It simply changes the currency symbol depending on the current language.

In English it shows ‘SAR’, in Arabic it shows ‘ر.س’.

Since these are fixed symbols, they don’t need translation.

Please delete the currency symbol strings from WPML String Translation to prevent conflicts — that should resolve the issue.

Best regards
Andreas

March 9, 2026 at 5:00 am #17880556

emirates-literatureF

HEY ANDREA, thanks for your reply, the necessary done now and the problem has been fixed. YOU MADE MY DAY after all this wait, thank you so much i really appreciate it, but the problem now is that if i dont add the below script to my cPanel FTP server files:

add_filter("woocommerce_currency_symbol", "change_existing_currency_symbol", 10, 2);

function change_existing_currency_symbol($currency_symbol, $currency)
{
switch ($currency) {
case "AED":
if (ICL_LANGUAGE_CODE == "en") {
$currency_symbol = __("AED", "elfpublishing");
} else {
$currency_symbol = __("د.إ", "elfpublishing");
}
break;
}
return $currency_symbol;

Arabic currency will appear again when the website is in English
And if the website is arabic its fine, no issue, but the English currency AED is not showing anymore, how can we fix this with WPML once and for all? let me know please

March 10, 2026 at 10:45 am #17884861

Andreas W.
WPML Supporter since 12/2018

Languages: English (English ) Spanish (Español ) German (Deutsch )

Timezone: America/Lima (GMT-05:00)

WooCommerce itself doesn’t know about WPML’s language context — it just outputs the default currency symbol for AED, which is د.إ.

WPML doesn’t automatically override currency symbols per language. It only translates strings and custom fields.

That’s why the filter is necessary: it bridges WooCommerce’s symbol output with WPML’s current language.