WPML
Estado
Abierto
Plugin/tema relacionado
WP Job Manager
Etiquetas de temática
Compatibility

Resumen del problema

Al usar WP Job Manager con WPML, eliminar entradas de empleo o de currículum desde el frontend (Job Dashboard) no elimina automáticamente sus traducciones. Incluso cuando la opción «Cuando se elimine una entrada, eliminar también las traducciones» está activada en «WPML > Configuración > Sincronización de entradas y páginas».

Solución alternativa

Por favor, asegúrese de tener una copia de seguridad completa de su sitio antes de continuar.

Para las entradas de empleo


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

  • Busque la línea 466

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

  • Por:
    				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 );
    					}

Para las entradas de currículums


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

  • Busque la línea 125

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

  • Por:
    				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 );
    					}

Todos los problemas conocidos →