Comment livrer un formulaire de prise de rendez-vous à un cabinet médical sans installer un plugin de réservation complet avec gestion de créneaux, synchronisation d’agenda et paiement en ligne ? La demande initiale du praticien, un généraliste installé en cabinet de groupe, tenait en une phrase : « je veux que les patients puissent demander un rendez-vous, le secrétariat rappelle pour confirmer ». Pas de calendrier en temps réel, pas de compte patient, juste une demande qui arrive par e-mail.
Ce cas illustre une tentation fréquente en agence : sur-outiller un besoin simple parce qu’un plugin « fait tout ». Sur ce projet, un plugin de prise de rendez-vous complet aurait ajouté des dizaines de requêtes en base, une interface d’administration supplémentaire à former, et une surface d’attaque inutile pour un besoin qui se résume à un formulaire de contact qualifié.
Le choix de Contact Form 7 intégré au thème
Contact Form 7 reste l’un des plugins de formulaire les plus légers de l’écosystème WordPress : pas de table personnalisée en base, un shortcode simple, une configuration par formulaire de type texte. L’intégration ne s’est pas arrêtée au shortcode collé dans une page : le formulaire a été monté directement dans un template de thème dédié, page-rendez-vous.php, pour garder le contrôle total sur la mise en page autour du formulaire (horaires du cabinet, adresse, numéro en cas d’urgence).
<?php
/* Template Name: Demande de rendez-vous */
get_header();
?>
<main class="rdv-page">
<h1><?php the_title(); ?></h1>
<div class="rdv-infos">
<?php the_content(); ?>
</div>
<div class="rdv-formulaire">
<?php echo do_shortcode( '[contact-form-7 id="128" title="Demande de rendez-vous"]' ); ?>
</div>
</main>
<?php get_footer(); ?>
Trois champs, pas dix
La liste des champs a été volontairement réduite après discussion avec le praticien :
- Nom et prénom du patient.
- Numéro de téléphone pour le rappel du secrétariat.
- Un champ libre facultatif pour préciser le motif général (« renouvellement d’ordonnance », « première consultation »), explicitement présenté comme non médical dans le texte d’aide du champ.

Aucun champ ne demande de motif de consultation détaillé, d’antécédent ou d’information de santé : la demande transite par e-mail non chiffré vers le secrétariat, et il aurait été irresponsable de laisser un patient y déposer une information sensible. Le texte d’aide du champ libre rappelle explicitement de ne pas détailler de symptôme.
Accusé de réception et gestion des attentes
Le message de confirmation affiché après envoi précise un délai de rappel indicatif (« le secrétariat vous recontacte sous 48 heures ouvrées ») pour éviter que le patient ne considère le formulaire comme une confirmation de rendez-vous. Ce point, discuté avec le cabinet, évite les appels frustrés de patients pensant avoir déjà un créneau réservé.
[response]
Merci, votre demande a bien été transmise au secrétariat.
Nous vous recontactons sous 48 heures ouvrées pour vous
proposer un créneau. En cas d'urgence, merci d'appeler
directement le cabinet au numéro affiché ci-dessus.
Notification et suivi côté secrétariat
Contact Form 7 envoie la notification par e-mail au secrétariat via son mécanisme natif wpcf7_mail_sent, sans intégration à un CRM externe : la volumétrie du cabinet (une dizaine de demandes par semaine) ne justifiait pas un outil de suivi supplémentaire. Un simple filtre wpcf7_before_send_mail ajoute la date et l’heure d’envoi dans le corps du message, pour faciliter le tri manuel par le secrétariat :
add_action( 'wpcf7_before_send_mail', function( $contact_form ) {
$submission = WPCF7_Submission::get_instance();
if ( $submission ) {
$data = $submission->get_posted_data();
$data['horodatage'] = date_i18n( 'd/m/Y H:i' );
$submission->set_posted_data( $data );
}
} );
En résumé
Pour un besoin de cette taille, un plugin de réservation complet aurait apporté plus de complexité que de valeur. Un formulaire Contact Form 7 monté proprement dans un template de thème, avec des champs volontairement limités et un message de confirmation qui pose les bonnes attentes, a répondu exactement à la demande du praticien sans exposer de donnée sensible ni alourdir la maintenance du site.