Skip to content Skip to sidebar

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

Problem:
You are experiencing an issue where after updating WPML, a custom plugin that sets a new order status shows the English fallback name instead of the translated string on the orders admin page.
Solution:
We recommend modifying your plugin code to use the existing "woocommerce" text domain instead of re-registering the string under its own custom plugin text domain. Here is an example of how you can adjust your code:

function tw_acs_register_new_order_statuses() {<br />    register_post_status( 'wc-shipped', array(<br />        'label'                     => __( 'Shipped', 'woocommerce' ),<br />        'public'                    => true,<br />        'exclude_from_search'       => false,<br />        'show_in_admin_all_list'    => true,<br />        'show_in_admin_status_list' => true,<br />        'label_count'               => _n_noop(<br />            'Shipped <span class="count">(%s)</span>',<br />            'Shipped <span class="count">(%s)</span>',<br />            'acs-courier-voucher'<br />        ),<br />    ) );<br />}<br /><br />function tw_acs_new_wc_order_statuses( $order_statuses ) {<br />    $new_statuses_arr = array();<br />    foreach ( $order_statuses as $id => $label ) {<br />        $new_statuses_arr[ $id ] = $label;<br />        if ( 'wc-completed' === $id ) {<br />            $new_statuses_arr['wc-shipped'] = __( 'Shipped', 'woocommerce' );<br />        }<br />    }<br />    return $new_statuses_arr;<br />}

Please note that custom code is outside the scope of our support. If this solution does not resolve your issue or if it becomes outdated, we 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. If further assistance is needed, please open a new support ticket at WPML support forum.

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 27 replies, has 0 voices.

Last updated by dimitrisD-7 1 month, 3 weeks ago.

Assisted by: Lucas Vidal de Andrade.

Author Posts
June 11, 2026 at 10:33 am #18096129

dimitrisD-7

Hello,

we have managed to create a staging site as a copy from the live site.

The credentials are the same only the login url is different.

Should I send you here the new url or you would create a new private box for me ?

Thank you.

June 12, 2026 at 9:09 am #18098842

Dražen
Supporter

Languages: English (English )

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

Hello,

Thank you for creating the staging site.

Lucas is currently out of the office, so I will be taking over the ticket for now. Yes, please go ahead and share the staging URL here.

Once I have the URL, I'll take a look and continue the investigation.

Thank you.

Best regards,
Dražen

June 15, 2026 at 9:55 am #18103466

Lucas Vidal de Andrade
WPML Supporter since 11/2023

Languages: English (English ) Spanish (Español ) German (Deutsch ) Portuguese (Brazil) (Português )

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

Hello there,

After some thorough investigation, I found a few things:

1. First and foremost, for the statuses to show properly in the future, it's necessary to activate the option "Ορισμός γλώσσας διαχείρισης ως γλώσσας επεξεργασίας" under Users > Profile;
2. The issue only occurs when both the Astra Theme and the Order Tracker for WooCommerce plugin are active. Deactivating any of the 2 solves the issue;
3. The forementioned plugin is out of date, and needs a newer PHP version to be updated;

I suspect that there's some conflict or behavior overwriting WPML translations. To continue, please follow these steps in the staging website:

1. Make sure that "Ορισμός γλώσσας διαχείρισης ως γλώσσας επεξεργασίας" is checked for your user profile;
2. Update your PHP version to 8.3. You can ask your hosting to do that;
3. Update the Order Tracker for WooCommerce plugin;

After that, check if the statuses show properly. Let me know the results. If they still show in the wrong language, I'll check further. Please don't activate any plugins, as it's easier to debug with unrelated plugins inactive. Thanks in advance for your patience and cooperation.

June 15, 2026 at 11:28 am #18103652

dimitrisD-7

Hello,

thank you for your response.

I have tried your steps but still the wrong language is being displayed.

I have tried even after I update the plugin you mentioned to even unistall it in order to see if there is any difference but still there was none.

I tried to even delete the string from string translations and rescan the plugin but now the scanning taking too much time and it never finishes.

Can you check it again?

Thank you.

June 15, 2026 at 2:18 pm #18104236

Lucas Vidal de Andrade
Supporter

Hello there,

Thank you for sharing the details. Can you please restore the staging version with the original? I'll need to escalate it internally, and need a fresh copy of production to do so.

June 16, 2026 at 8:08 am #18105908

dimitrisD-7

Hello,

I will inform you once the staging is ready.

In addition I would like you to ask to reverse any changes that might have been done by you or your colleague Lucas to the live site because they create some problems.

We notice that in every page we go the status Shipped is displayed at the top of the page before anything else is loaded that also affect the requests made in plugin updates.

Thank you.

June 16, 2026 at 9:00 am #18106061

dimitrisD-7

Hello again,

please ignore the reply above we found the issue and it does not related to any of your actions.

The staging site is migrated with the live data again.

Thank you.

June 16, 2026 at 1:33 pm #18107038

Lucas Vidal de Andrade
Supporter

Hello,

Thank you for that. I cannot find the custom code, where the "Shipped" string is registered in the custom plugin. Where exactly can I find it?

June 16, 2026 at 2:36 pm #18107183

dimitrisD-7

Hello Lucas,

the 'Shipped' string is registered on file acs-courier-voucher.php inside the plugin acs-courier-voucher.

Thank you.

June 17, 2026 at 12:04 pm #18109232

Lucas Vidal de Andrade
Supporter

Thank you. I've escalated the issue to our dev team, which will analyze it. I'll get back to you as soon as I hear from them. Thank you.

June 29, 2026 at 9:04 am #18130865

dimitrisD-7

Hello,

I would like to ask if the dev team needs the staging site to be online or you just send them everything they need?

Thank you.

June 29, 2026 at 9:23 am #18130931

Lucas Vidal de Andrade
Supporter

They have the needed information. I'll update you as soon as I have relevant information. Thank you for your patience.

July 9, 2026 at 1:08 pm #18149401

Lucas Vidal de Andrade
Supporter

Hello there,

Thank you for your patience. I've got feedback from he 2nd tier team:

"The simplest solution is to just modify their code so that instead of re-registering the string "Shipped" under its own custom plugin text domain, to modify the plugin code so that it uses the existing "woocommerce" text domain that already has the string available."

They've already applied that on the website, and confirmed that it's now working as expected.

    /**
     * Add new order status
     */
    function tw_acs_register_new_order_statuses() {
    register_post_status( 'wc-shipped', array(
        'label'                     => __( 'Shipped', 'woocommerce' ),
        'public'                    => true,
        'exclude_from_search'       => false,
        'show_in_admin_all_list'    => true,
        'show_in_admin_status_list' => true,
        'label_count'               => _n_noop(
            'Shipped <span class="count">(%s)</span>',
            'Shipped <span class="count">(%s)</span>',
            'acs-courier-voucher'
        ),
    ) );
}
           
    /**
     * Register in wc_order_statuses.
     */
    function tw_acs_new_wc_order_statuses( $order_statuses ) {
        
        $new_statuses_arr = array();
        
        // add new order status after processing
        foreach ( $order_statuses as $id => $label ) {
            $new_statuses_arr[ $id ] = $label;
            
            if ( 'wc-completed' === $id ) { // after "Completed" status
                $new_statuses_arr['wc-shipped'] = __( 'Shipped', 'woocommerce' );
            }
        }
 
        return $new_statuses_arr;
    }

Please note that custom code is outside the scope of our support, so we already went the extra mile to assist you with that matter. We can no longer continue supporting this issue, and expect that the provided solution is enough.

July 13, 2026 at 2:56 pm #18155337

dimitrisD-7

Thank you for your assistance in that matter.