To use WPML Menu Sync properly with UberMenu, please be sure you are running:
- WPML v4.5.1 or later
- UberMenu v3.7.5 or later
The WPML Menu Sync system synchronizes menu items across menus of different languages.
In addition to the menu structure, UberMenu-specific menu item settings and metadata will also be synced across languages. This ensures that all UberMenu data is properly maintained between your different language menus.
Just perform the WPML menu sync as normal (in your Dashboard, visit WPML > WP Menus Sync and follow the prompts), and the UberMenu settings will be synced automatically. There is no additional step required for basic UberMenu setting synchronization as long as you are running the latest versions of both plugins.
Excluded menu item settings
Some settings, such as submenu types or column widths, make sense to sync, as these will be likely consistent across all languages. Others, however, such as custom content – which might vary between languages – would result in potentially overriding data when syncing.
Therefore, UberMenu excludes the following menu item settings from the sync process:
- Custom URL
- Custom Content
- Icon Title
- Badge Content
- Submenu Footer Content
- ShiftNav Toggle
- Dynamic Posts – Post Parent
- Dynamic Posts – Exclude
- Dynamic Posts – Sub Content
- Dynamic Posts – View All Text
- Dynamic Terms – Parent Term
- Dynamic Terms – Ancestor Term
- Dynamic Terms – Exclude Terms
- Dynamic Terms – View All Text
- Dynamic Posts/Terms – Empty Results Message
This means that the above settings will not be synced between languages, allowing you to manage them independently for each language’s menu. This way, you can have separate custom content for each language, without overriding those language-specific changes while syncing other menu item settings.
Customizing excluded menu item settings
If you need to change which settings are excluded from the menu sync process, you can use the ubermenu_wpml_sync_excluded_menu_item_settings filter.
For example, perhaps your custom content is generated via a shortcode which handles translations internally, you may want to remove it from the exclusions list so that the same shortcode will sync across languages. Or perhaps you need different images in different languages, you can exclude the image setting from the sync to that they can be controlled independently.