Home / Forums / WoodMart support forum / Header stored inside _elementor_page_settings breaks WPML per-page assignment
Home › Forums › WoodMart support forum › Header stored inside _elementor_page_settings breaks WPML per-page assignment
Header stored inside _elementor_page_settings breaks WPML per-page assignment
- This topic has 0 replies, 1 voice, and was last updated 21 minutes ago by
Greg.
-
AuthorPosts
-
September 17, 2026 at 12:04 pm #729351
GregParticipantHeader Builder: no language condition + header stored inside _elementor_page_settings breaks WPML per-page assignment
Hi,
I’m running Woodmart 8.5.7 with Elementor (free), WPML, and a bilingual site (Greek default, English secondary). I need different headers per language and ran into two blockers.
1. No language condition in Header Builder
The Header Builder conditions don’t expose language as an option. On a WPML site this is the natural place to assign a Greek header to Greek pages and an English header to English pages. Without it, the only route left is per-page assignment, which leads to the second problem.
2. Per-page header assignment doesn’t survive WPML translation sync
The header choice is stored inside the serialized _elementor_page_settings meta as:
wd__woodmart_whb_header => header_192474
Because it lives inside that array rather than in its own meta key, WPML can only treat the entire array as one unit. Its custom-field translation settings work per key, so there’s no way to tell WPML “copy the Elementor page settings but leave the header alone.”
The result: every time I set the English header on the translated page and hit Save, WPML copies the whole array back from the original and the header reverts to the Greek one. It’s not a one-off; it happens on every save.
Workaround I’m using
A get_post_metadata filter that intercepts _elementor_page_settings on the frontend, checks the current WPML language, and overwrites wd__woodmart_whb_header with the English header ID. It works, but it’s a filter running on every page load for something the theme should handle.
What would fix this
Either of these solves it:
Add a language condition to Header Builder conditions (WPML-aware). This is the better fix and matches how Elementor Pro’s Theme Builder handles it.
Or store the header in its own meta key instead of inside _elementor_page_settings, so it can be set to “Do not translate” in WPML → Settings → Custom Fields Translation.The second is presumably the smaller change on your side and would unblock per-page assignment immediately.
Two questions:
1. Is there an officially supported way to serve a different header per language in 8.5.7 that I’ve missed? If there’s a hook or a setting I’ve overlooked, I’d rather use that than my own filter.
2. If not, is either of the fixes above on your roadmap, and is there a rough timeline? I need to know whether to keep the filter as a permanent part of this build or treat it as temporary until a theme update lands.Environment: Woodmart 8.5.7, Elementor free, WPML (String Translation + Multilingual CMS), WordPress on shared hosting, PHP 8.x.
Happy to share the filter code or test a patch.
Thanks.
-
AuthorPosts
Tagged: header, page-settings, Wpml
- You must be logged in to create new topics. Login / Register