- Stato
- Risolto
- Segnalato per
- WPML Multilingual CMS 4.6.13
- Risolto in
- WPML Multilingual CMS 4.7.4
- Plugin/tema correlato
- Elementor
- Tag dell’argomento
- Compatibility
Panoramica del problema
Quando si utilizza la funzionalità Condizioni di visualizzazione di Elementor Pro per controllare la visibilità dei widget, le condizioni non si applicano correttamente sulle pagine tradotte. In particolare, i tag o le categorie nella lingua tradotta non attivano le condizioni di visualizzazione come previsto, facendo sì che gli elementi che dovrebbero essere nascosti rimangano visibili.
Soluzione alternativa
Assicurati di avere un backup completo del tuo sito prima di procedere.
- Apri il file functions.php del tuo tema.
- Aggiungi il seguente 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']); } }