- Estado
- Resuelto
- Notificado para
- WPML Multilingual CMS 4.6.13
- Resuelto en
- WPML Multilingual CMS 4.7.4
- Plugin/tema relacionado
- Elementor
- Etiquetas de temática
- Compatibility
Resumen del problema
Al usar la función Condiciones de visualización de Elementor Pro para controlar la visibilidad de los widgets, las condiciones no se aplican correctamente en las páginas traducidas. En concreto, las etiquetas o categorías en el idioma traducido no activan las condiciones de visualización como se espera, lo que hace que los elementos que deberían estar ocultos permanezcan visibles.
Solución alternativa
Por favor, asegúrese de tener una copia de seguridad completa de su sitio antes de continuar.
- Abra el archivo functions.php de su tema.
- Añada el siguiente fragmento de código:
/* * 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']); } }