# Thème pour cabinet médical : formulaire de rendez-vous sans plugin lourd

> Un praticien veut un formulaire de demande de rendez-vous, pas un système de réservation complet avec calendrier synchronisé. Retour sur une intégration native, légère, dans le thème.

- Auteur : WordPress Développement
- Publié le : 2020-09-17
- Mis à jour le : 2020-09-17
- Catégorie : Thèmes
- URL : https://www.wpmoderne.fr/themes/theme-cabinet-medical-formulaire-cf7/

## L’essentiel

- Formulaire monté dans un template de thème, pas un shortcode isolé
- Champs limités au strict nécessaire pour une demande
- Aucune donnée de santé stockée côté site

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.

> L'essentiel à retenir : Formulaire monté dans un template de thème, pas un shortcode isolé ; Champs limités au strict nécessaire pour une demande ; Aucune donnée de santé stockée côté site

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.
