ajout fonctions utiliraires
This commit is contained in:
parent
760e4d4f78
commit
b123b75b27
@ -173,6 +173,8 @@ class CRVI_Plugin {
|
||||
add_action('admin_notices', [self::class, 'display_intervenant_conflicts_notice']);
|
||||
// Hook pour vider le cache via paramètre URL
|
||||
add_action('admin_init', [self::class, 'handle_clear_cache_request']);
|
||||
// Redirection des utilisateurs non connectés depuis les pages intervenant
|
||||
add_action('template_redirect', [self::class, 'redirect_non_logged_from_intervenant_pages']);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -282,6 +284,85 @@ class CRVI_Plugin {
|
||||
public static function load_filters() {
|
||||
/* add_filter('rest_endpoints', [self::class, 'register_routes']); */
|
||||
add_filter('wp_script_attributes', [self::class, 'custom_script_tag'], 10, 2);
|
||||
// Redirection des intervenants après connexion vers leur espace
|
||||
add_filter('login_redirect', [self::class, 'redirect_intervenant_after_login'], 10, 3);
|
||||
}
|
||||
|
||||
/**
|
||||
* Redirige les intervenants vers leur espace après connexion
|
||||
*
|
||||
* @param string $redirect_to URL de redirection par défaut
|
||||
* @param string $requested_redirect_to URL de redirection demandée
|
||||
* @param WP_User|WP_Error $user Utilisateur connecté ou erreur
|
||||
* @return string URL de redirection
|
||||
*/
|
||||
public static function redirect_intervenant_after_login($redirect_to, $requested_redirect_to, $user) {
|
||||
// Vérifier si l'utilisateur est valide et n'est pas une erreur
|
||||
if (is_wp_error($user) || !is_a($user, 'WP_User')) {
|
||||
return $redirect_to;
|
||||
}
|
||||
|
||||
// Si une redirection spécifique a été demandée, la respecter
|
||||
if (!empty($requested_redirect_to)) {
|
||||
return $requested_redirect_to;
|
||||
}
|
||||
|
||||
// Vérifier si l'utilisateur a le rôle 'intervenant'
|
||||
if (in_array('intervenant', $user->roles, true)) {
|
||||
// Rediriger vers l'espace intervenant
|
||||
return home_url('/espace-intervenant');
|
||||
}
|
||||
|
||||
// Pour les autres utilisateurs, utiliser la redirection par défaut
|
||||
return $redirect_to;
|
||||
}
|
||||
|
||||
/**
|
||||
* Redirige les utilisateurs non connectés depuis les pages intervenant vers la home
|
||||
* Vérifie la page 'espace-intervenant' (ID 3307) et ses pages enfants
|
||||
*/
|
||||
public static function redirect_non_logged_from_intervenant_pages() {
|
||||
// Vérifier si l'utilisateur est connecté
|
||||
if (is_user_logged_in()) {
|
||||
return;
|
||||
}
|
||||
|
||||
global $post;
|
||||
|
||||
// ID de la page espace-intervenant
|
||||
$intervenant_page_id = 3307;
|
||||
|
||||
// Vérifier si on est sur la page espace-intervenant ou une de ses pages enfants
|
||||
$is_intervenant_page = false;
|
||||
|
||||
if ($post && $post->post_type === 'page') {
|
||||
// Vérifier si c'est la page espace-intervenant elle-même
|
||||
if ($post->ID == $intervenant_page_id) {
|
||||
$is_intervenant_page = true;
|
||||
}
|
||||
|
||||
// Vérifier si c'est une page enfant de espace-intervenant
|
||||
if (!$is_intervenant_page && $post->post_parent) {
|
||||
$current_post = $post;
|
||||
// Remonter la hiérarchie pour vérifier si un parent est la page 3307
|
||||
while ($current_post->post_parent) {
|
||||
$current_post = get_post($current_post->post_parent);
|
||||
if (!$current_post) {
|
||||
break;
|
||||
}
|
||||
if ($current_post->ID == $intervenant_page_id) {
|
||||
$is_intervenant_page = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Si on est sur une page intervenant et que l'utilisateur n'est pas connecté, rediriger vers la home
|
||||
if ($is_intervenant_page) {
|
||||
wp_redirect(home_url('/'));
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
public function load_shortcodes() {
|
||||
|
||||
@ -269,11 +269,29 @@ class AgendaVisualFilters {
|
||||
// Fallback : utiliser le slug si l'ID n'est pas disponible
|
||||
langueSelect.value = filters.traduction;
|
||||
}
|
||||
|
||||
// Déclencher l'événement change pour que le système de filtrage existant prenne le relais
|
||||
// Support pour Select2 si présent
|
||||
if (window.jQuery && jQuery(langueSelect).hasClass('select2-hidden-accessible')) {
|
||||
jQuery(langueSelect).trigger('change');
|
||||
} else {
|
||||
// Déclencher l'événement change natif
|
||||
langueSelect.dispatchEvent(new Event('change', { bubbles: true }));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
const langueSelect = document.getElementById('langue_filtre');
|
||||
if (langueSelect) {
|
||||
langueSelect.value = '';
|
||||
|
||||
// Déclencher l'événement change pour que le système de filtrage existant prenne le relais
|
||||
// Support pour Select2 si présent
|
||||
if (window.jQuery && jQuery(langueSelect).hasClass('select2-hidden-accessible')) {
|
||||
jQuery(langueSelect).trigger('change');
|
||||
} else {
|
||||
// Déclencher l'événement change natif
|
||||
langueSelect.dispatchEvent(new Event('change', { bubbles: true }));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ $user = wp_get_current_user();
|
||||
<div class="row mb-4">
|
||||
<div class="col-12">
|
||||
<h1 class="h2 mb-2">
|
||||
<i class="fas fa-calendar-alt me-2"></i>Mon Agenda
|
||||
<!-- <i class="fas fa-calendar-alt me-2"></i> -->Mon Agenda
|
||||
</h1>
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-light rounded p-3">
|
||||
<div class="container-fluid">
|
||||
|
||||
@ -18,7 +18,7 @@ $user = wp_get_current_user();
|
||||
<div class="row mb-4">
|
||||
<div class="col-12">
|
||||
<h1 class="h2 mb-2">
|
||||
<i class="fas fa-calendar-alt me-2"></i>Mon Agenda
|
||||
<!-- <i class="fas fa-calendar-alt me-2"></i> -->Mon Agenda
|
||||
</h1>
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-light rounded p-3">
|
||||
<div class="container-fluid">
|
||||
|
||||
@ -20,7 +20,7 @@ $today = date('d/m/Y');
|
||||
<div class="row mb-4">
|
||||
<div class="col-12">
|
||||
<h1 class="h2 mb-2">
|
||||
<i class="fas fa-home me-2"></i>Mon Espace Intervenant
|
||||
<!-- <i class="fas fa-home me-2"></i> -->Mon Espace Intervenant
|
||||
</h1>
|
||||
<p class="text-muted">Bonjour <?php echo esc_html($intervenant_nom); ?></p>
|
||||
</div>
|
||||
|
||||
@ -34,7 +34,7 @@ if (!is_wp_error($langues_terms) && !empty($langues_terms)) {
|
||||
<div class="row mb-4">
|
||||
<div class="col-12">
|
||||
<h1 class="h2 mb-2">
|
||||
<i class="fas fa-clock me-2"></i>Mes Permanences
|
||||
<!-- <i class="fas fa-clock me-2"></i> -->Mes Permanences
|
||||
</h1>
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-light rounded p-3">
|
||||
<div class="container-fluid">
|
||||
|
||||
@ -80,7 +80,7 @@ $jours_labels = [
|
||||
<div class="row mb-4">
|
||||
<div class="col-12">
|
||||
<h1 class="h2 mb-2">
|
||||
<i class="fas fa-user me-2"></i>Mon Profil
|
||||
<!-- <i class="fas fa-user me-2"></i> -->Mon Profil
|
||||
</h1>
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-light rounded p-3">
|
||||
<div class="container-fluid">
|
||||
|
||||
Loading…
Reference in New Issue
Block a user