WPML
Statut
Ouvert
Extension/thème associé
WP Job Manager
Étiquettes de sujet
Compatibility

Aperçu de l’anomalie

Lors de l’utilisation de WP Job Manager avec WPML, la suppression des articles d’offres d’emploi ou de CV depuis le front-end (Job Dashboard) ne supprime pas automatiquement leurs traductions. Même lorsque l’option « Lors de la suppression d’un article, supprimer également les traductions » est activée dans « WPML > Paramètres > Synchronisation des articles et des pages ».

Solution de contournement

Veuillez vous assurer d’avoir une sauvegarde complète de votre site avant de continuer.

Pour les articles d’offres d’emploi


  • Ouvrez /wp-content/plugins/wp-job-manager/includes/class-job-dashboard-shortcode.php

  • Cherchez la ligne 466

  • Remplacez :
    				case 'delete':
    					// Trash it.
    					wp_trash_post( $job_id );

  • Par :
    				case 'delete':
    					// Trash it.
    					// WPML workaround for compsupp-7729
    					if ( class_exists('Sitepress') ) {
    						$trid = apply_filters( 'wpml_element_trid', NULL, $job_id , 'post_job_listing' );
    						$translations = apply_filters( 'wpml_get_element_translations', NULL, $trid, 'job_listing' );
    						if ( !empty( $translations ) ) {
    							foreach ( $translations as $lang => $translation ) {
    								$translation_id = absint( $translation->element_id );
    								wp_trash_post( $translation_id );
    							}
    						}
    					} else {
    						wp_trash_post( $job_id );
    					}

Pour les articles de CV


  • Ouvrez /wp-content/plugins/wp-job-manager-resumes/includes/class-wp-resume-manager-shortcodes.php

  • Cherchez la ligne 125

  • Remplacez :
    				case 'delete':
    					// Trash it.
    					wp_trash_post( $resume_id );

  • Par :
    				case 'delete':
    					// Trash it.
    					// WPML workaround for compsupp-7757
    					if ( class_exists('Sitepress') ) {
    						$trid = apply_filters( 'wpml_element_trid', NULL, $resume_id , 'post_resume' );
    						$translations = apply_filters( 'wpml_get_element_translations', NULL, $trid, 'resume' );
    						if ( !empty( $translations ) ) {
    							foreach ( $translations as $lang => $translation ) {
    								$translation_id = absint( $translation->element_id );
    								wp_trash_post( $translation_id );
    							}
    						}
    					} else {
    						wp_trash_post( $resume_id );
    					}

Toutes les anomalies connues →