WPML
Statut
Résolu
Signalé pour
WPML Multilingual & Multicurrency for WooCommerce 4.12.6
Résolu dans
WooCommerce Multilingual & Multicurrency 5.5.2

Aperçu de l’anomalie

WPML Multilingue & Multidevise pour WooCommerce vous permet désormais de traduire et d’afficher les avis sur les produits. Cependant, il n’est pas encore possible de traduire les réponses à ces avis.

Solution de contournement

Veuillez effectuer une sauvegarde complète de votre site avant de continuer.


  1. Modifiez le fichier wp-content/plugins/woocommerce-multilingual/classes/Reviews/Translations/FrontEndHooks.php.

  2. Remplacez :
    	private static function isNonEmptyReview( $comment ) {
    		return Obj::prop( 'comment_content', $comment )
    		       && Relation::propEq( 'comment_type', self::COMMENT_TYPE, $comment );
    	}

    Par :

    	private static function isNonEmptyReview( $comment ) {
    		return Obj::prop( 'comment_content', $comment )
    		       && Relation::propEq( 'comment_type', self::COMMENT_TYPE, $comment ) || Relation::propEq( 'comment_type', 'comment', $comment );
    	}


  3. Ensuite, ouvrez le fichier wp-content/plugins/woocommerce-multilingual/classes/Reviews/Translations/Mapper.php.

  4. Remplacez :
    	private function getUnregisteredReviews() {
    		// phpcs:disable WordPress.DB.PreparedSQL.NotPrepared
    		$q = "SELECT c.comment_ID, c.comment_post_ID, c.comment_content, c.comment_type, tr.language_code, st.name, st.value
    				FROM {$this->wpdb->comments} AS c
    				LEFT JOIN {$this->wpdb->prefix}icl_translations AS tr
    					ON tr.element_id = c.comment_post_ID AND tr.element_type = 'post_product'
    				LEFT JOIN {$this->wpdb->prefix}icl_strings AS st
    					ON c.comment_content = st.value
    						AND st.context = '" . FrontEndHooks::CONTEXT . "'
    				WHERE c.comment_type = '" . FrontEndHooks::COMMENT_TYPE . "'
    					AND st.name IS null";
    
    		return (array) $this->wpdb->get_results( $q );
    	}

    Par :

    	private function getUnregisteredReviews() {
    		// phpcs:disable WordPress.DB.PreparedSQL.NotPrepared
    		$q = "SELECT c.comment_ID, c.comment_post_ID, c.comment_content, c.comment_type, tr.language_code, st.name, st.value
    				FROM {$this->wpdb->comments} AS c
    				LEFT JOIN {$this->wpdb->prefix}icl_translations AS tr
    					ON tr.element_id = c.comment_post_ID AND tr.element_type = 'post_product'
    				LEFT JOIN {$this->wpdb->prefix}icl_strings AS st
    					ON c.comment_content = st.value
    						AND st.context = '" . FrontEndHooks::CONTEXT . "'
    				WHERE c.comment_type = '" . FrontEndHooks::COMMENT_TYPE . "' OR c.comment_type = 'comment'
    					AND st.name IS null";
    
    		return (array) $this->wpdb->get_results( $q );
    	}


  5. Enfin, allez dans WooCommerceWooCommerce MultilingualStatut et cliquez sur le lien Dépannage.

  6. Sélectionnez Enregistrer les avis sur les produits pour la traduction.

  7. Cliquez sur le bouton Démarrer.

Toutes les anomalies connues →