WPML
Statut
Résolu
Résolu dans
WooCommerce Multilingual & Multicurrency 5.5.2
Étiquettes de sujet
WCML

Aperçu de l’anomalie

Si vous avez des produits précédemment traduits avec l’Éditeur de traduction classique (CTE) et que vous mettez ensuite à jour vos paramètres WPML pour utiliser ATE (pour les nouvelles traductions uniquement), la modification de ces produits précédemment traduits les ouvrira par erreur dans ATE au lieu de CTE.

(Cela affecte spécifiquement les Produits et non les autres types de publication.)

Solution de contournement

Le problème survient parce que les détails sur l’éditeur utilisé sont mal enregistrés pour les produits.

Une partie de la solution consiste à corriger cela, afin que lors de la traduction de produits via CTE, l’éditeur de traduction soit correctement enregistré pour qu’il s’ouvre dans le bon éditeur la prochaine fois.

Mais nous devons également corriger toutes les données existantes qui enregistrent le mauvais éditeur pour les produits qui ont déjà été modifiés avec CTE.

Abordons d’abord cette deuxième partie, pour laquelle nous devons exécuter cette requête SQL personnalisée :

UPDATE wp_icl_translate_job AS job
JOIN (
    SELECT job.job_id
    FROM wp_icl_translate_job AS job
    LEFT JOIN wp_icl_translation_status AS status ON job.rid = status.rid
    LEFT JOIN wp_icl_translations AS translations ON status.translation_id = translations.translation_id
    WHERE translations.element_type = 'post_product'
) AS derived
ON job.job_id = derived.job_id
SET job.editor = 'wpml'
WHERE job.editor = 'wp';

Si votre base de données utilise un préfixe différent de `wp_` pour les tables, vous devrez les ajuster (il y a quatre mentions de `wp_icl_` ci-dessus).

Vous pouvez exécuter une telle requête en utilisant phpMyAdmin ou via une extension Adminer.

Ensuite, pour vous assurer que les détails de l’éditeur sont correctement enregistrés à l’avenir, vous devez ajouter ce qui suit (via une extension d’extraits de code ou dans le fichier functions.php du thème) :

/**
 * WPMLSUPP-12927: Temporary fix to correctly record CTE editor for products
 */
add_filter( 'wpml_translation_editor_save_job_data', function( $data ){

	if ( $data['job_post_type'] == "post_product" ) {

		add_action( 'wpml_save_job_fields_from_post', function( $job_id ){

			wpml_tm_load_old_jobs_editor()->set( $job_id, 'wpml' );
		});
	}

	return $data;
});

Toutes les anomalies connues →