WPML
Statut
Résolu
Signalé pour
WPML Multilingual CMS 4.5.14
Résolu dans
WPML 4.6.4
Extension/thème associé
Elementor
Étiquettes de sujet
Compatibility

Aperçu de l’anomalie

Si vous utilisez la fonctionnalité de template de boucle Elementor, les boutons ne sont pas traduits sur l’interface publique même s’ils sont disponibles pour la traduction dans l’Éditeur de traduction avancé.

Solution de contournement

Assurez-vous de faire une sauvegarde complète de votre site avant de continuer.


  1. Ouvrez le fichier /wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/class-wpml-elementor-translate-ids.php.

  2. Cherchez la ligne 108.

  3. Remplacez la méthode WPML_Elementor_Translate_IDs::translate_global_widget_ids() :
    public function translate_global_widget_ids( $data_array, $post_id ) {
    		foreach ( $data_array as &$data ) {
    			if ( isset( $data['elType'] ) && 'widget' === $data['elType'] ) {
    				if ( 'global' === $data['widgetType'] ) {
    					$data['templateID'] = $this->translate_id( $data['templateID'] );
    				} elseif ( 'template' === $data['widgetType'] ) {
    					$data['settings']['template_id'] = $this->translate_id( $data['settings']['template_id'] );
    				}
    			}
    			$data['elements'] = $this->translate_global_widget_ids( $data['elements'], $post_id );
    		}
    
    		return $data_array;
    	}

    Par :

    public function translate_global_widget_ids( $data_array, $post_id ) {
            foreach ( $data_array as &$data ) {
                if ( isset( $data['elType'] ) && 'widget' === $data['elType'] ) {
                    if ( 'global' === $data['widgetType'] ) {
                        $data['templateID'] = $this->translate_id( $data['templateID'] );
                    } elseif ( 'template' === $data['widgetType'] || 'loop-grid' === $data['widgetType'] || 'loop-carousel' === $data['widgetType']) {
                        $data['settings']['template_id'] = $this->translate_id( $data['settings']['template_id'] );
                    } 
                }
                $data['elements'] = $this->translate_global_widget_ids( $data['elements'], $post_id );
            }
      
            return $data_array;
        }


  4. Traduisez le modèle de boucle Elementor dans WPMLGestion de traduction.

Toutes les anomalies connues →