diff --git a/app/controllers/Event_Controller.php b/app/controllers/Event_Controller.php index 42434a1..bee3147 100644 --- a/app/controllers/Event_Controller.php +++ b/app/controllers/Event_Controller.php @@ -1153,13 +1153,34 @@ class CRVI_Event_Controller { } // Nettoyer et valider les langues (slugs de la taxonomie) + // Accepter soit des slugs soit des IDs (convertir les IDs en slugs) $langues_valides = []; if (!empty($langues)) { - foreach ($langues as $langue_slug) { - $langue_slug = sanitize_text_field($langue_slug); - // Vérifier que la langue existe dans la taxonomie - $term = get_term_by('slug', $langue_slug, 'langue'); - if ($term && !is_wp_error($term)) { + foreach ($langues as $langue_value) { + $langue_value = sanitize_text_field($langue_value); + if (empty($langue_value)) { + continue; + } + + $term = null; + $langue_slug = null; + + // Si c'est un nombre, essayer de récupérer par ID + if (is_numeric($langue_value)) { + $term = get_term((int)$langue_value, 'langue'); + if ($term && !is_wp_error($term)) { + $langue_slug = $term->slug; + } + } else { + // Sinon, essayer par slug + $term = get_term_by('slug', $langue_value, 'langue'); + if ($term && !is_wp_error($term)) { + $langue_slug = $term->slug; + } + } + + // Ajouter le slug si la langue existe + if ($langue_slug) { $langues_valides[] = $langue_slug; } }