I have used WPML multi currency for a while, but recently I turned it off and use the other currency plugin.

Most of the amount have converted correctly, but for some amount still remain at the default currency even after I changed to another one:

1) Booking cost from Woocommerce Booking plugin

2) Extra option cost and total cost from Extra options plugin

The amount is obtain using AJAX , from the actions:

1) wc_bookings_calculate_costs

2) tc_epo_bookings_calculate_costs

After some studies , I found the amount is calculate at :


The code : https://github.com/wp-premium/woocommerce-multilingual/blob/master/compatibility/class-wcml-bookings.php (the wc_bookings_calculate_costs is refered at line 163, and it goes to the function filter_wc_booking_cost at line 731)

So, it is quite strange as I already disabled the multi currency in WPML settings.

I suspect at some where the code still goes to the WPML currency, how to fix that?

Thanks for helping.

2 Answers 2


First at all, I just use WPML one time and I really don't liked it.

It comes to me, that you maybe leave some po/mo files in the wp-content/languages/woocommerce-multilingual/ or wpml one. I found on a thread saying

  1. Visit WPML > Theme and plugin localization > select 'Translate using .mo files' > select Automatically load the theme's .mo file using 'load_theme_textdomain'. > Enter textdomain > Save
  2. The translations for wordpress and the admin screen are those to be placed in wp-content/languages - Download these files here: http://wpcentral.io/internationalization/
  3. Your theme's language should be put in a themes/awr-theme/languages/ directory
  4. Finally the naming of this file must match the language options set on your site. If your using Spanish in it's without changing the locale setting, WPML is associating es_ES.mo. You can review those options if you visit WPML > Languages > Site Languages > Edit Languages.

Why not, this will explain this ghost plugin behaviour !? As woocommerce-multiligual compatibility check for other plugin option... Add with some custom template files, translation string, that can be understood.

Depending on how you deactivate (and delete ?) the plugin, is it possible that some options settings of multi-currency plugins remains in your install ?

Are you sure that any code (yours or another plugin or theme) is not calling class-wcml-bookings.php directly (without is_plugin_active() ), and by this way reactivate some actions and filter ? But I really doubt about this fact, as the class is not initiate, all filter reference will br broken.

In case I'm wrong, about the filter you are talking about line 163

add_filter( 'get_post_metadata', array( $this, 'filter_wc_booking_cost' ), 10, 4 );

Did you try to remove it with remove_filter() ?

remove_filter('get_post_metadata', 10, 4);

Writing this I lean more on mo/po way than filter.

Hope it helps!

  • the pluguin is activated though, because I need the language translation, but I have disabled the multi currency in WPML setting page
    – user782104
    Nov 30, 2016 at 2:39

Before you wreck your self check your WC settings -> tools page and first try to clear all trancients and do recount of terms. WC uses trancients and these need to be cleared some times.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.