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.
Sun | Mon | Tue | Wed | Thu | Fri | Sat |
---|---|---|---|---|---|---|
- | 9:00 – 13:00 | 5:00 – 13:00 | 5:00 – 13:00 | 5:00 – 13:00 | 5:00 – 13:00 | - |
- | 14:00 – 18:00 | 14:00 – 18:00 | 14:00 – 18:00 | 14:00 – 18:00 | 14:00 – 18:00 | - |
Supporter timezone: America/Argentina/Buenos_Aires (GMT-03:00)
Tagged: Documentation request
This topic contains 6 replies, has 0 voices.
Last updated by Otto 1 week, 3 days ago.
Assisted by: Otto.
Author | Posts |
---|---|
April 21, 2025 at 1:47 am #16950494 | |
codem |
Background of the issue: Symptoms: Questions: |
April 23, 2025 at 12:43 pm #16959724 | |
Otto WPML Supporter since 09/2015
Languages: English (English ) Spanish (Español ) Timezone: America/Argentina/Buenos_Aires (GMT-03:00) |
Hello, I apologize for the delay in responding. I will take care of this ticket; the reply time will be shorter now. Please try the following:
Best Regards, |
April 25, 2025 at 3:06 am #16966584 | |
codem |
Dear Otto. The currency settings are correctly configured as shown in the attached file. Best Regards. Thanks. |
April 25, 2025 at 12:29 pm #16968532 | |
Otto WPML Supporter since 09/2015
Languages: English (English ) Spanish (Español ) Timezone: America/Argentina/Buenos_Aires (GMT-03:00) |
Hello, Thanks. The settings look correct. Does the problem only happen with subscriptions? Other order types are OK? I suggest you try this to help us identify if it might be a conflict with another plugin or theme that is causing the problem. Best Regards, |
April 28, 2025 at 1:28 am #16972891 | |
codem |
Dear Otto. As you suggested, I deactivated all other plugins and switched to the default theme, but the same issue still occurs as shown in the attachment. Is it not possible for you to reproduce this issue internally within WPML? If needed, I can also provide access information to a test site. Best Regards. Thanks. |
April 28, 2025 at 12:37 pm #16974852 | |
Otto WPML Supporter since 09/2015
Languages: English (English ) Spanish (Español ) Timezone: America/Argentina/Buenos_Aires (GMT-03:00) |
Hello, I would like to request temporary access (wp-admin and FTP) to your site to take a better look at the issue. The information you will enter is private which means only you and I can see and have access to it. **IMPORTANT** Best Regards, |
April 30, 2025 at 12:52 pm #16984006 | |
Otto WPML Supporter since 09/2015
Languages: English (English ) Spanish (Español ) Timezone: America/Argentina/Buenos_Aires (GMT-03:00) |
Thank you! I managed to see the problem. Before escalating the issue to our second-tier support, can you please update WooCommerce Subscriptions to the latest version on the test site? Best Regards, |
May 1, 2025 at 9:34 am #16986230 | |
codem |
Desr Otto. I’ve updated the WooCommerce Subscriptions plugin to the latest version. Please check it as soon as you can. Best Regards. Thanks. |
May 1, 2025 at 11:30 am #16986434 | |
Otto WPML Supporter since 09/2015
Languages: English (English ) Spanish (Español ) Timezone: America/Argentina/Buenos_Aires (GMT-03:00) |
Hello, I managed to reproduce the problem without Woocommerce Subscriptions. The number of decimals in the orders page behaves this way: If I enable all currencies in all languages in WooCommerce > WooCommerce Multilingual & Multicurrency > Multicurrency > Currencies, it behaves correctly in all languages. Can you give this a try? Is this a suitable workaround for you? Take into account that you can decide which currency to display first in each language. Best Regards, |
May 1, 2025 at 11:54 am #16986471 | |
codem |
Dear Otto. I checked the details you explained. Best Regards. Thanks. |
May 1, 2025 at 8:15 pm #16987340 | |
Otto WPML Supporter since 09/2015
Languages: English (English ) Spanish (Español ) Timezone: America/Argentina/Buenos_Aires (GMT-03:00) |
Hello, Thanks. I escalated the issue to our second-tier support. They'll try to provide a workaround within a few days. If it is not possible, they will escalate the issue to our development team. In this case, the solution will take longer. I'll get back to you as soon as I have news. Best Regards, |
May 15, 2025 at 6:13 pm #17038420 | |
Otto WPML Supporter since 09/2015
Languages: English (English ) Spanish (Español ) Timezone: America/Argentina/Buenos_Aires (GMT-03:00) |
Hello, I am reaching out just to let you know that the issue has been escalated to our development team. Sadly, we can't provide a workaround at this stage. I'll keep you posted about the progress of the solution. Best Regards, |
June 4, 2025 at 12:11 pm #17106188 | |
Otto WPML Supporter since 09/2015
Languages: English (English ) Spanish (Español ) Timezone: America/Argentina/Buenos_Aires (GMT-03:00) |
Hello, Our dev team took a look at the issue and made some progress. But the solution won't be available in the next release (WCML 5.5) because the issue is complex, and the solution needs to be refined and tested thoroughly. For now, if you have a testing environment you can give it a try to this (hacky) workaround: Add this to the theme's functions.php file or to a dedicated plugin: add_action( 'wp', function() { // First viable action hook: `send_headers`, but `wp` might be more correct. if ( \WCML\Orders\Helper::isOrderListAdminScreen() || is_account_page() ) { // This filter is fired in \WC_Data_Store_WP::filter_raw_meta_data // when DataStores\Orders\OrdersTableDataStore::init_order_record is fired. add_filter( 'woocommerce_data_store_wp_post_read_meta', function( $metaData, $maybeOrder, $callingObject ) { if ( $callingObject instanceof \WC_Order_Data_Store_Interface ) { /** @var \WC_Abstract_Order $maybeOrder */ static $currentOrder; // We need to pass the order object reference // because it's not initialized yet with the data // at this stage. $filterCallback = function( $currency ) use ( &$maybeOrder ) { $orderCurrency = $maybeOrder->get_currency(); return $orderCurrency ?: $currency; }; if ( $currentOrder !== $maybeOrder ) { // This filter hook comes from \WCML_Multi_Currency_Prices::get_context_currency_code. // The name is misleading... // Not sure we should create a new one because the method may be changed/removed in the future. remove_all_filters( 'wcml_filter_currency_position' ); add_filter( 'wcml_filter_currency_position', $filterCallback ); $currentOrder = $maybeOrder; } // Ideally we should have an action to remove our filter on `wcml_filter_currency_position` // but I could not find any viable one... } return $metaData; }, 10, 3 ); } } ); This should fix the rounding issue in the backend. To fix it also in the front end we need to change: from: public function filter_wc_price_args_on_order_admin_screen( $args ) { if ( OrdersHelper::isOrderListAdminScreen() ) { $args = $this->filter_wc_price_args( $args ); } return $args; } to: public function filter_wc_price_args_on_order_admin_screen( $args ) { if ( OrdersHelper::isOrderListAdminScreen() || is_account_page() ) { $args = $this->filter_wc_price_args( $args ); } return $args; } As mentioned, this is just a first draft workaround, not ready for production. But if you are willing to try in a testing site, your feedback will be really useful. Best Regards, |