Le WordPress d'aujourd'hui, décodé pour les développeurs

Astuces

Un rappel quand un professionnel de santé n’a pas confirmé son planning

Un planning non confirmé la veille pour le lendemain passe souvent inaperçu jusqu'au premier patient sans créneau disponible. Une notification interne referme cette faille.

Par WordPress Développement • 20 janvier 2024 • 4 min de lecture • Aucun commentaire
Un rappel quand un professionnel de santé n'a pas confirmé son planning

Le lundi 18 heures, sur un cabinet de groupe utilisant un agenda de prise de rendez-vous en ligne, restait le moment critique de la semaine : c’est l’heure à laquelle un planning resté vide pour le mardi devenait officiellement un problème, souvent découvert trop tard, quand un patient tentait de prendre rendez-vous sur un créneau qui n’avait simplement jamais été ouvert. Le praticien concerné, en congé la semaine précédente, avait tout simplement oublié de reconfigurer ses disponibilités à son retour.

La correction retenue ne cherche pas à empêcher l’oubli en amont — impossible à garantir totalement — mais à le détecter automatiquement et à le signaler avant qu’il ne devienne visible côté patient. Une tâche planifiée vérifie chaque jour, pour le lendemain, quels praticiens n’ont aucun créneau confirmé, et déclenche une notification interne ciblée.

Modéliser la notion de « planning confirmé »

Sur ce système, chaque praticien dispose d’un type de contenu personnalisé planning_praticien, avec une meta _creneaux_jour stockant un tableau sérialisé de créneaux par date, et une meta _planning_confirme passant à 1 une fois le praticien satisfait de sa semaine.

$creneaux = get_post_meta( $planning_id, '_creneaux_jour', true );
$confirme = get_post_meta( $planning_id, '_planning_confirme', true );

// Un planning est considéré « non confirmé » si aucun créneau n'existe
// pour le jour cible, ou si la case de confirmation n'a jamais été cochée.

Planifier la vérification quotidienne

Une tâche WP-Cron personnalisée s’exécute chaque jour à 18 heures, heure choisie pour laisser encore le temps à un praticien de corriger son planning avant la fin de journée de travail du secrétariat.

L'essentiel à retenir : Détecter les praticiens sans planning confirmé à J-1 ; Envoyer une notification interne ciblée ; Escalader vers le secrétariat si le planning reste vide
if ( ! wp_next_scheduled( 'wpmoderne_verifier_plannings_j1' ) ) {
    wp_schedule_event( strtotime( 'today 18:00' ), 'daily', 'wpmoderne_verifier_plannings_j1' );
}

add_action( 'wpmoderne_verifier_plannings_j1', function () {
    $demain = wp_date( 'Y-m-d', strtotime( '+1 day' ) );

    $plannings = get_posts( array(
        'post_type'      => 'planning_praticien',
        'posts_per_page' => -1,
        'post_status'    => 'publish',
    ) );

    foreach ( $plannings as $planning ) {
        $creneaux = get_post_meta( $planning->ID, '_creneaux_jour', true ) ?: array();
        $confirme = get_post_meta( $planning->ID, '_planning_confirme_' . $demain, true );

        if ( empty( $creneaux[ $demain ] ) || ! $confirme ) {
            wpmoderne_notifier_praticien_non_confirme( $planning->ID, $demain );
        }
    }
} );

Notifier le praticien concerné

La notification passe par un e-mail direct au praticien, mais aussi par une notice d’administration visible dès sa prochaine connexion, via admin_notices filtré sur son identifiant utilisateur, pour couvrir le cas où l’e-mail n’est pas lu à temps.

function wpmoderne_notifier_praticien_non_confirme( $planning_id, $date ) {
    $auteur = get_post_field( 'post_author', $planning_id );
    $user   = get_user_by( 'id', $auteur );

    if ( ! $user ) {
        return;
    }

    wp_mail(
        $user->user_email,
        'Planning non confirmé pour le ' . wp_date( 'd/m/Y', strtotime( $date ) ),
        "Bonjour,\n\nVotre planning n'est pas encore confirmé pour demain. Merci de le mettre à jour avant 20h pour éviter tout créneau indisponible côté patients.\n\nL'équipe technique."
    );

    update_post_meta( $planning_id, '_notification_envoyee_' . $date, current_time( 'mysql' ) );
}

Escalader vers le secrétariat en cas d’absence de correction

Une seconde vérification, deux heures après la première, contrôle si le planning a bien été corrigé entretemps. Si ce n’est pas le cas, le secrétariat reçoit une alerte pour agir manuellement : contacter le praticien par téléphone, ou fermer temporairement la prise de rendez-vous en ligne pour ce créneau plutôt que de laisser un vide invisible aux patients.

  • Vérifier à 20 heures si _planning_confirme est passé à 1 depuis la première alerte.
  • Si non, envoyer un e-mail récapitulatif au secrétariat avec la liste des praticiens concernés pour le lendemain.
  • Consigner chaque escalade dans un journal simple, pour repérer les praticiens qui oublient régulièrement plutôt que ponctuellement.

Éviter la notification qui devient du bruit

Un praticien systématiquement en retard sur ses confirmations finit par ignorer une alerte devenue routinière. Espacer les rappels avec une escalade progressive — d’abord discrète, puis plus visible — garde son efficacité d’alerte plutôt que de la transformer en simple notification ignorée par habitude.

Une alerte qui arrive tous les jours, y compris quand tout va bien, cesse d’être une alerte : elle doit rester rare pour rester utile.

En résumé

Le vide dans un planning médical ne se voit qu’au moment où un patient tente de prendre rendez-vous, souvent trop tard pour corriger sans dommage sur l’image du cabinet. Une vérification quotidienne automatisée, combinée à une escalade progressive vers le secrétariat, transforme un oubli individuel en incident détecté et traité avant qu’il ne devienne visible côté patient.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Partager :

À propos de l'auteur

WordPress Développement

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi