Skip to content Skip to sidebar

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

Problem:
You are trying to display translated membership levels and user field values from the Ultimate Membership Pro (IHC) plugin on the front end using WPML String Translation. Despite translating these strings under the domain admin_texts_ihc_levels and marking them as complete, the translated values are not displayed on the front end. Instead, the default language version continues to appear, even when switching the site language.

Solution:
The issue occurred because the shortcode

[ihc-list-user-levels]

was displaying the membership plan labels from the plugin’s custom table instead of the translated values stored in WordPress options (wp_options). We updated the plugin so that it first checks the translated labels from wp_options. Here’s how we modified the code in

/wp-content/plugins/indeed-membership-pro/classes/UserSubscriptions.php

:

$opts = get_option('ihc_levels');

if (!empty($opts[$object->level_id]['label'])) {

    $temp['label'] = $opts[$object->level_id]['label'];

} else {

    $temp['label'] = $levels[$object->level_id]['label'];

}

This modification ensures that the translated labels are displayed correctly. We recommend contacting the plugin author to integrate this fix permanently.

If this solution does not apply to your case, or if it seems 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 issues persist, 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 7 replies, has 0 voices.

Last updated by ayeletY-2 1 week, 3 days ago.

Assisted by: Paola Mendiburu.

Author Posts
August 28, 2025 at 1:16 pm #17355129

ayeletY-2

Background of the issue:
I am trying to display translated membership levels and user field values from the Ultimate Membership Pro (IHC) plugin on the front end using WPML String Translation. I have translated these strings under the domain admin_texts_ihc_levels, and all translations are marked as complete.

Symptoms:
On the front end, the translated values are not being displayed. The default language version continues to appear, even when switching the site language.

Questions:
Why are the translated values not showing on the front end?
Is the IHC plugin not applying WPML translation filters correctly?

September 1, 2025 at 8:33 am #17361675

Paola Mendiburu
WPML Supporter since 11/2020

Languages: English (English ) Spanish (Español ) Italian (Italiano )

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

Hi there!

This is Paola and I hope you are well!

Could you please let me know where exactly I can see this text on your website and from which section you are adding it?

I would like to request temporary access (wp-admin and FTP) to your site to take a better look at the issue. You will find the needed fields for this below the comment area when you log in to leave your next reply. The information you will enter is private which means only you and I can see and have access to it.

Privacy and Security Policy
We have strict policies regarding privacy and access to your information. Please see:
https://wpml.org/purchase/support-policy/privacy-and-security-when-providing-debug-information-for-support/

**IMPORTANT**
- Please make a backup of the site files and database before providing us access.
- If you do not see the wp-admin/FTP fields this means your post & website login details will be made PUBLIC. DO NOT post your website details unless you see the required wp-admin/FTP fields. If you do not, please ask me to enable the private box.
The private box looks like this: hidden link

September 5, 2025 at 8:30 am #17378214

Paola Mendiburu
WPML Supporter since 11/2020

Languages: English (English ) Spanish (Español ) Italian (Italiano )

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

Could you please apply this solution?
https://wpml.org/errata/ultimate-membership-pro-member-checkbox-and-filter-strings-not-translatable/

Please let me know if after that works.

September 6, 2025 at 9:46 am #17380874

ayeletY-2

Hi Paola,

Thank you for the suggested solution. I have carefully followed all the steps you provided, but unfortunately the issue with the admin_texts_ihc_levels domain still persists. Could you please provide further guidance or an alternative solution to resolve this?

Thank you for your help..

BR , Ayelet

September 9, 2025 at 10:41 am #17386671

Paola Mendiburu
WPML Supporter since 11/2020

Languages: English (English ) Spanish (Español ) Italian (Italiano )

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

Hi there!

Could you please install the plugin in the following test site?
hidden link

Try to reproduce the issue, that way we can send it to our compatibility team.

Please let me know when it is done.

September 12, 2025 at 6:58 am #17396146

ayeletY-2

Hi again,

I cannot install UMP (Ultimate Membership Plugin) on the suggested test site hidden link. UMP requires a valid license, and installing/testing it on a piggyback site is not permitted without a license .

Could you please advise alternative ways to proceed? Here are a few possible causes I’ve considered , please let me know which you think is most likely:

String registration timing / conditional rendering: WPML only registers strings when the relevant template runs on the frontend. If these checkboxes are conditional (shown only to certain users/roles), WPML may never register them. Is there a way to register these strings server-side or programmatically?

I’ve noticed strings under both admin_texts_ihc_levels and the ihc domain. Which domain and exact key format should I be translating? (e.g. checkbox_option_{fieldname}_{slug} - please confirm the correct convention.)

Using sanitize_title($v) could create duplicate keys for similar labels and overwrite translations. Would you recommend adding field IDs to keys to guarantee uniqueness?

I cleared the WPML string translation cache and site cache, but could object cache or another cache layer be preventing updated translations from appearing?

The visible label should be translated while the stored input value must remain stable. If the plugin treats translated labels as stored values, translations may not match expected values. Any guidance on best practice here?

Are there known compatibility issues between WPML and Indeed Membership Pro / UMP versions? I can supply plugin and PHP/WP versions if useful.

Could you please:

Confirm the correct string domain and keys I should search for in WPML --> String Translation.

Provide a small, safe code snippet I can add to functions.php to programmatically register the current IHC checkbox option strings for translation.

Tell me whether you can register/import these strings on your side if I provide a list.

Let me know any logs, screenshots, or exact details you need to diagnose further.

I appreciate any alternative approach you can recommend,

BR, Ayelet

September 12, 2025 at 4:45 pm #17398440

Paola Mendiburu
WPML Supporter since 11/2020

Languages: English (English ) Spanish (Español ) Italian (Italiano )

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

Can I have access to Ftp that way I can see the files of the plugin?

I have enabled next answer as private.

September 15, 2025 at 12:21 pm #17402116

Paola Mendiburu
WPML Supporter since 11/2020

Languages: English (English ) Spanish (Español ) Italian (Italiano )

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

Hi there!

The issue happened because the shortcode [ihc-list-user-levels] was displaying the membership plan labels from the plugin’s custom table instead of the translated values stored in WordPress options (wp_options).

We updated the plugin so that it first checks the translated labels from wp_options.

I went to:
/wp-content/plugins/indeed-membership-pro/classes/UserSubscriptions.php

And I have modified this code:

$temp['label'] = $levels[$object->level_id]['label'];

With the following one:

$opts = get_option( 'ihc_levels' );
if ( !empty( $opts[ $object->level_id ]['label'] ) ) {
    $temp['label'] = $opts[ $object->level_id ]['label'];
} else {
    $temp['label'] = $levels[ $object->level_id ]['label'];
}

And now appears translated.

It will be nice if you can contact the plugin author.

September 17, 2025 at 2:56 pm #17410410

ayeletY-2

Wow. Nice catch!
Yet, another UMP bug 🙁
I'll try to ping them.

Thanks a lot Paola!