Skip to content Skip to sidebar

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

Last updated by Natalie Wood 1 week, 2 days ago.

Assisted by: Shekhar Bhandari.

Author Posts
September 15, 2025 at 5:40 am #17400646

Natalie Wood

Background of the issue:
I am trying to remove the persistent notice 'Change the field group translation setting' that appears on every admin page. My field groups were set up a long time ago and are working fine. Currently, field groups are showing as 'translatable' on the settings page.

Symptoms:
Every page in admin has the notice: 'Change the field group translation setting. You can translate field labels and labels for Choices using String Translation. To do this, set the field group post type to Not Translatable.' If I dismiss it, it comes back on every page.

Questions:
How can I make the notice go away permanently?
What setting should I use to ensure my field groups continue to work correctly?

September 15, 2025 at 8:57 am #17401156

Shekhar Bhandari
WPML Supporter since 03/2015

Languages: English (English )

Timezone: Asia/Kathmandu (GMT+05:45)

Hello there,

Our 2nd tier suggested the following workaround, can you please check it.

- Add the following to the theme functions.php file

add_action( 'admin_init', function() {
    global $wp_filter;

    $hook_name  = 'admin_notices';
    $priority   = 10;
    $class_name = 'WPML_ACF_Translatable_Groups_Checker';
    $method     = 'report_untranslated_groups';

    // Make sure this hook is defined and is a WP_Hook object
    if ( isset( $wp_filter[ $hook_name ] ) && is_a( $wp_filter[ $hook_name ], 'WP_Hook' ) ) {
        $hook = $wp_filter[ $hook_name ];

        // Check that priority exists in the callbacks array
        if ( isset( $hook->callbacks[ $priority ] ) ) {
            // Loop through each callback at that priority
            foreach ( $hook->callbacks[ $priority ] as $unique_id => $callback_data ) {
                // Each callback's function is stored in $callback_data['function']
                $callback = $callback_data['function'] ?? null;

                if ( is_array( $callback ) ) {
                    [$object_or_class, $callback_method] = $callback;

                    // Match both the method name and the class
                    if ( $callback_method === $method
                        && is_object( $object_or_class )
                        && get_class( $object_or_class ) === $class_name
                    ) {
                        // Remove it!
                        unset( $hook->callbacks[ $priority ][ $unique_id ] );
                    }
                }
            }
        }
    }
}, 11 );

Let me know if this helps.

Thanks

September 18, 2025 at 3:30 am #17411564

Natalie Wood

Thanks

Yes this code does remove the popup

will you be updating WPML in the future so this code is not necessary?

If you do support having translatable field names then it would be good to have a way to dismiss this message in the interface and not have to add custom code.

September 18, 2025 at 6:11 am #17411633

Shekhar Bhandari
WPML Supporter since 03/2015

Languages: English (English )

Timezone: Asia/Kathmandu (GMT+05:45)

Hi there,

Yes, we’ll make the banner dismissable in the upcoming releases.

Thanks

September 22, 2025 at 10:45 am #17421327

Natalie Wood

Thanks!