Skip to content Skip to sidebar

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

Problem:
If you're experiencing issues where not all strings are appearing in the Strings Translation, and specific elements like the hamburger menu in the main navigation remain untranslated, this might be due to the header template not being translated.
Solution:
First, ensure that the header template is translated. You can do this by accessing the header template in your admin panel and translating it. Here is a general guide on how to translate templates: Translating Your Contents.

If the issue persists, we have implemented a custom code workaround. Add the following code to your functions.php file:

add_filter( 'redux/options/kiddino_opt/option_value/kiddino_header_select_options', 'kiddino_translate_header_template_id' );<br /><br />function kiddino_translate_header_template_id( $value ) {<br />    if ( is_admin() ) {<br />        return $value;<br />    }<br /><br />    if ( ! empty( $value ) ) {<br />        $translated_id = apply_filters( 'wpml_object_id', $value, 'elementor_library', true );<br /><br />        if ( ! empty( $translated_id ) ) {<br />            return $translated_id;<br />        }<br />    }<br /><br />    return $value;<br />}<br /><br />add_action( 'wp', 'kiddino_fix_page_header_template_id' );<br /><br />function kiddino_fix_page_header_template_id() {<br />    if ( is_admin() ) {<br />        return;<br />    }<br /><br />    if ( ! is_singular() ) {<br />        return;<br />    }<br /><br />    $post_id = get_queried_object_id();<br /><br />    if ( empty( $post_id ) ) {<br />        return;<br />    }<br /><br />    $settings = get_post_meta( $post_id, '_elementor_page_settings', true );<br /><br />    if ( empty( $settings ) || ! is_array( $settings ) ) {<br />        return;<br />    }<br /><br />    if ( ! empty( $settings['kiddino_header_builder_option'] ) ) {<br />        $translated_id = apply_filters( 'wpml_object_id', $settings['kiddino_header_builder_option'], 'elementor_library', true );<br /><br />        if ( ! empty( $translated_id ) && $translated_id != $settings['kiddino_header_builder_option'] ) {<br />            $settings['kiddino_header_builder_option'] = $translated_id;<br />            update_post_meta( $post_id, '_elementor_page_settings', $settings );<br />        }<br />    }<br />}

After adding the code, open the translated header template in Elementor and set the correct off-canvas (sidebar) template. This adjustment is necessary for each translated template.

Please note that this solution might become irrelevant due to updates or may not apply to your specific case. 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 the problem persists, please open a new support ticket.

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

Last updated by Dražen 2 weeks, 4 days ago.

Assisted by: Dražen.

Author Posts
April 20, 2026 at 9:49 am #17980195

sonishA

Translated header but still it didn't work
Can you please do 1
Amharic

I'll do rest 2 following your approach

Thank you

April 20, 2026 at 10:30 am #17980427

Dražen
Supporter

Languages: English (English )

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

Hello,

I have added a custom code workaround in your functions.php to ensure that the correct translated header template is loaded.

add_filter( 'redux/options/kiddino_opt/option_value/kiddino_header_select_options', 'kiddino_translate_header_template_id' );

function kiddino_translate_header_template_id( $value ) {
    if ( is_admin() ) {
        return $value;
    }

    if ( ! empty( $value ) ) {
        $translated_id = apply_filters( 'wpml_object_id', $value, 'elementor_library', true );

        if ( ! empty( $translated_id ) ) {
            return $translated_id;
        }
    }

    return $value;
}

add_action( 'wp', 'kiddino_fix_page_header_template_id' );

function kiddino_fix_page_header_template_id() {
    if ( is_admin() ) {
        return;
    }

    if ( ! is_singular() ) {
        return;
    }

    $post_id = get_queried_object_id();

    if ( empty( $post_id ) ) {
        return;
    }

    $settings = get_post_meta( $post_id, '_elementor_page_settings', true );

    if ( empty( $settings ) || ! is_array( $settings ) ) {
        return;
    }

    if ( ! empty( $settings['kiddino_header_builder_option'] ) ) {
        $translated_id = apply_filters(
            'wpml_object_id',
            $settings['kiddino_header_builder_option'],
            'elementor_library',
            true
        );

        if ( ! empty( $translated_id ) && $translated_id != $settings['kiddino_header_builder_option'] ) {
            $settings['kiddino_header_builder_option'] = $translated_id;
            update_post_meta( $post_id, '_elementor_page_settings', $settings );
        }
    }
}

Next, please open the translated header template in Elementor and make sure to set the correct off-canvas (sidebar) template there as well. This is a one-time adjustment, as the setting needs to be configured per translated template.

- hidden link

Please note that this issue is caused by how the theme handles template IDs and is not fully WPML-compatible out of the box. Since this involves third-party theme code, we are not able to maintain or guarantee this workaround long-term.

I recommend reaching out to the theme author and sharing this behavior with them, so they can implement a proper WPML-compatible solution in future updates.

Hope this helps.

Regards,
Drazen

April 20, 2026 at 10:59 am #17980506

sonishA

Thank you so much

Can you please help me understand how you did it?
I have header templates in elementor

Have you used them?

or created any new header template?

Please if you can kindly write down the steps here
So I can do for other languages without disturbing you more

Thank you so much

April 20, 2026 at 11:11 am #17980518
sonishA

All the categories in in the dropdown are translated but Category All is still appearing in english whereas in String Translation its translated (Its coming from tutor lms pro)

Even when I click any of the category in Amharic version , it redirects me to English version

Can you guide me how to solve this

Thank you so much for your help

New threads created by Dražen and linked to this one are listed below:

https://wpml.org/forums/topic/split-tutorlms-link-not-translated/

Untitled2.png
April 20, 2026 at 11:30 am #17980597

Dražen
Supporter

Languages: English (English )

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

Hello,

You’re very welcome!

I did not create any new header templates — I used your existing Elementor header templates.

The issue was that the theme always loads the original (default language) template ID. Because of that, WPML could not switch to the translated header automatically. I added a small workaround in functions.php so WPML can return the correct translated template ID per language.

You just need to translate other header and of canvas templates and make sure correct of canvas template is selected in translated header template.

In short:

The code fix ensures WPML loads the correct header template for each language
Your part is to make sure each translated header template has the correct internal setup (for example, the off-canvas menu)

Going forward, for full compatibility, the theme author should ideally adjust the theme code so that header and other templates are loaded. That way, everything works correctly without needing custom workarounds.

As for 2nd issue, since we limit 1 isuse per ticket, I have opened a new ticket for you and one of my collegues will further check and help soon.

- https://wpml.org/forums/topic/split-tutorlms-link-not-translated/

Otherwise you can close it and open new chat for live support.

Hope this helps.

Regards,
Drazen

April 20, 2026 at 12:13 pm #17980878

sonishA

Thank you so much
Lastly
Can you please check footer also

Same issue is with footer
I have added manually via elementor but its not correct approach
As I cannot add footer manully on tutor Lms pages

Please kindly check this too
If you can just do Amharic
I'll do rest

I have created footer templates as well like header in kiddino builder

April 21, 2026 at 5:14 am #17982511
sonishA

String translation is mixing everything up
Now my site is in English and its showing "Amharic translation"

When I switch to Amharic site my tutor LMS Pro book/courses are not loading it gives 404 error whereas previously it was working fine

Even in quiz section in english it shows few words in amharic

Its a live site
Please check it ASAP
Books are showing in Amharic in tutor lms but when I preview it gives error , only books in english are displaying fine

New threads created by Dražen and linked to this one are listed below:

https://wpml.org/forums/topic/split-string-translation-is-mixing-everything-up/

123.png
April 21, 2026 at 5:44 am #17982536

Dražen
Supporter

Languages: English (English )

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

Hello,

For the footer, it is unfortunately the same situation as with the header. The theme (Kiddino builder) is always loading the default language template, so WPML cannot automatically switch to the translated footer. This is why I added a small custom workaround for the header—to show how it can be handled.

The same type of custom code would be required for the footer as well. However, I’m afraid we’re not able to continue adding and maintaining custom compatibility fixes for third-party themes, especially since there are multiple issues already appearing. This needs to be properly handled at the theme level.

Please contact the theme author and share this with them, as they need to adjust how header/footer templates are loaded to be WPML-compatible / join or program or please use WPML compatible theme:
- https://wpml.org/theme/

Regarding as I mentioned before to avoid confusion and delays and since we limit 1 issuer per ticket, I have opened new ticket for you and one of my colleagues will take over and help.

-https://wpml.org/forums/topic/split-string-translation-is-mixing-everything-up/

Thanks for your understanding.

Regards,
Drazen

April 21, 2026 at 5:54 am #17982547

sonishA

I am waiting but I have still not got any reply for the ticket you split yesterday from anyone

My
tutr Lms amharic courses are not appearing
The were fine before

but now when I enroll and start reading in Amharic it says 404 error
Even its not appearing in hidden link
previously book was here

English books are fine
but Amharic are not

If you can check this ASAP
As its a live site

Atleast books should appear fine

April 21, 2026 at 5:56 am #17982548

Dražen
Supporter

Languages: English (English )

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

Hello,

Thank you for your message, I understand this is urgent.

The ticket is still in queue and will be picked up based on priority. We currently have a higher volume, so it may take a bit more time.

If you need faster assistance, I recommend starting a new chat session, and we will be glad to help you there in real time and check the issue with Tutor LMS and the Amharic pages.

Regards,
Dražen

April 21, 2026 at 6:07 am #17982571

sonishA

new chat session means
Shall I close this ticket and open new one?

April 21, 2026 at 7:26 am #17982766

Dražen
Supporter

Languages: English (English )

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

Hello,

You can start a live chat session with our support, if a supporter is available, using the following link:

https://wpml.org/forums/forum/english-support/

For the header and footer issues, as explained earlier, this would need to be adjusted by the theme developers in their code for full compatibility with WPML or best is to use WPML officially compatible themes.

Regards,
Dražen