- Status
- Resolvido
- Relatado para
- WPML Multilingual CMS 4.6.13
- Resolvido em
- WPML Multilingual CMS 4.7.4
- Plugin/tema relacionado
- Elementor
- Tags de tópico
- Compatibility
Visão geral do problema
Ao usar o recurso Condições de exibição do Elementor Pro para controlar a visibilidade do widget, as condições não se aplicam corretamente em páginas traduzidas. Especificamente, tags ou categorias no idioma traduzido não acionam as condições de exibição como esperado, fazendo com que elementos que deveriam estar ocultos permaneçam visíveis.
Solução alternativa
Por favor, certifique-se de ter um backup completo do seu site antes de prosseguir.
- Abra o arquivo functions.php do seu tema.
- Adicione o seguinte snippet:
/* * WPML Workaround for compsupp-7656 */ add_filter( 'elementor/frontend/before_render', 'wpml_compsupp7656_filter_e_display_conditions_from_widget'); function wpml_compsupp7656_filter_e_display_conditions_from_widget($element) { $settings = $element->get_settings(); if (array_key_exists('e_display_conditions', $settings) && !empty($settings['e_display_conditions'])) { foreach ($settings['e_display_conditions'] as $key => $condition_json) { $condition = json_decode($condition_json, true); foreach ($condition as &$condition_group) { foreach ($condition_group as &$single_condition) { if (isset($single_condition['condition']) && strpos($single_condition['condition'], 'in_') === 0) { $taxonomy_key = substr($single_condition['condition'], 3); // Remove 'in_' prefix if (isset($single_condition[$taxonomy_key])) { foreach ($single_condition[$taxonomy_key] as &$term) { if (isset($term['id'])) { $term_obj = get_term($term['id']); if ($term_obj && !is_wp_error($term_obj)) { $term['id'] = apply_filters('wpml_object_id', $term['id'], $term_obj->taxonomy, true); } } } } } } } // Encode the modified condition back to JSON $settings['e_display_conditions'][$key] = json_encode($condition); } // Update the element's settings with the modified conditions $element->set_settings('e_display_conditions', $settings['e_display_conditions']); } }