Ajouter un système de réservation WordPress
Que vous gériez un salon de coiffure à Dakar, un cabinet médical, un espace de coworking ou un service de transport, un système de réservation en ligne élimine les appels téléphoniques et les messages WhatsApp pour la prise de rendez-vous. Vos clients réservent 24h/24, et vous recevez une notification instantanée. Voici comment mettre en place un système de réservation adapté à votre activité.
1. Choisir le bon plugin de réservation
| Plugin | Prix | Idéal pour | Points forts |
|---|---|---|---|
| Amelia | Gratuit / Pro 76$ | Salons, cabinets, consultants | Interface moderne, SMS, multi-employés, paiements |
| Booking Calendar | Gratuit / Pro 89$ | Hébergements, locations | Calendrier visuel, saisons, tarifs variables |
| Simply Schedule | Gratuit / Pro 99$/an | Rendez-vous simples | Léger, type Calendly, sync Google Calendar |
| BookIt | Gratuit / Pro 79$ | Services personnels | Simple, interface épurée, multi-services |
| WooCommerce Bookings | 249$/an | E-commerce + réservations | S’intègre à WooCommerce, paiements inclus |
Recommandation : Amelia pour les services avec rendez-vous (salons, cabinets, consultants) ou Simply Schedule Appointments pour les rendez-vous simples type consulting.
2. Configuration avec Amelia
Installation et paramètres initiaux
- Installez Amelia depuis Extensions → Ajouter
- Allez dans Amelia → Réglages :
- Horaires de travail : lundi-vendredi 8h-18h, samedi 9h-14h
- Durée par défaut : 30 ou 60 minutes selon votre activité
- Fuseau horaire : Africa/Dakar (GMT+0)
- Devise : XOF (Franc CFA)
- Intervalle entre RDV : 15 minutes (temps de nettoyage/préparation)
Créer vos services
Dans Amelia → Services, ajoutez chaque prestation :
| Service | Durée | Prix | Catégorie |
|---|---|---|---|
| Consultation initiale | 60 min | 15 000 FCFA | Consultations |
| Suivi | 30 min | 10 000 FCFA | Consultations |
| Coupe homme | 30 min | 3 000 FCFA | Coiffure |
| Tresses | 120 min | 15 000 FCFA | Coiffure |
| Session coaching | 90 min | 25 000 FCFA | Coaching |
Ajouter des employés (optionnel)
Si plusieurs personnes prennent des rendez-vous :
- Dans Amelia → Employés, ajoutez chaque personne
- Assignez les services que chaque employé peut effectuer
- Définissez les horaires individuels (jours de congé, horaires spécifiques)
Intégrer le formulaire de réservation
Utilisez le shortcode Amelia dans n’importe quelle page :
<!-- Formulaire de réservation complet -->
[ameliabooking]
<!-- Réservation pour un service spécifique -->
[ameliabooking service=1]
<!-- Réservation pour une catégorie -->
[ameliabooking category=2]
<!-- Catalogue de services (les clients choisissent) -->
[ameliacatalog]
<!-- Recherche de disponibilité -->
[ameliasearch]
3. Solution sans plugin : formulaire de réservation personnalisé
Pour un système simple sans plugin lourd, voici un formulaire de réservation avec sélection de date/heure :
<form id="reservation-form" class="reservation-form">
<h3>Réserver un rendez-vous</h3>
<div class="form-group">
<label>Votre nom *</label>
<input type="text" name="nom" required placeholder="Prénom Nom">
</div>
<div class="form-group">
<label>Téléphone *</label>
<input type="tel" name="telephone" required placeholder="+221 7X XXX XX XX">
</div>
<div class="form-group">
<label>Service souhaité *</label>
<select name="service" required>
<option value="">Choisir un service</option>
<option value="consultation" data-price="15000" data-duration="60">
Consultation (60 min) — 15 000 FCFA
</option>
<option value="suivi" data-price="10000" data-duration="30">
Suivi (30 min) — 10 000 FCFA
</option>
<option value="coaching" data-price="25000" data-duration="90">
Coaching (90 min) — 25 000 FCFA
</option>
</select>
</div>
<div class="form-row">
<div class="form-group">
<label>Date *</label>
<input type="date" name="date" required min="">
</div>
<div class="form-group">
<label>Heure *</label>
<select name="heure" required>
<option value="">Choisir</option>
<option value="08:00">08:00</option>
<option value="08:30">08:30</option>
<option value="09:00">09:00</option>
<option value="09:30">09:30</option>
<option value="10:00">10:00</option>
<option value="10:30">10:30</option>
<option value="11:00">11:00</option>
<option value="11:30">11:30</option>
<option value="14:00">14:00</option>
<option value="14:30">14:30</option>
<option value="15:00">15:00</option>
<option value="15:30">15:30</option>
<option value="16:00">16:00</option>
<option value="16:30">16:30</option>
<option value="17:00">17:00</option>
</select>
</div>
</div>
<div class="form-group">
<label>Message (optionnel)</label>
<textarea name="message" rows="3" placeholder="Précisions sur votre demande..."></textarea>
</div>
<button type="submit" class="btn-reservation">
Confirmer la réservation
</button>
<p class="reservation-note">
Vous recevrez une confirmation par WhatsApp dans les 30 minutes.
</p>
</form>
<script>
// Définir la date minimum à aujourd'hui
document.querySelector('input[name="date"]').min =
new Date().toISOString().split('T')[0];
// Désactiver les dimanches
document.querySelector('input[name="date"]').addEventListener('input', function() {
var day = new Date(this.value).getDay();
if (day === 0) { // Dimanche
alert('Nous sommes fermés le dimanche. Veuillez choisir un autre jour.');
this.value = '';
}
});
</script>
/* CSS du formulaire de réservation */
.reservation-form {
max-width: 500px;
margin: 0 auto;
padding: 30px;
background: #fff;
border-radius: 16px;
box-shadow: 0 4px 20px rgba(0,0,0,0.08);
}
.reservation-form h3 {
text-align: center;
margin: 0 0 25px;
font-size: 24px;
}
.form-group {
margin-bottom: 18px;
}
.form-group label {
display: block;
font-size: 14px;
font-weight: 600;
margin-bottom: 6px;
color: #333;
}
.form-group input,
.form-group select,
.form-group textarea {
width: 100%;
padding: 12px 14px;
border: 2px solid #e0e0e0;
border-radius: 8px;
font-size: 15px;
transition: border-color 0.3s;
box-sizing: border-box;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
border-color: #e94560;
outline: none;
}
.form-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 15px;
}
.btn-reservation {
width: 100%;
padding: 15px;
background: #e94560;
color: #fff;
border: none;
border-radius: 8px;
font-size: 16px;
font-weight: 700;
cursor: pointer;
transition: background 0.3s;
}
.btn-reservation:hover { background: #c73550; }
.reservation-note {
text-align: center;
font-size: 13px;
color: #888;
margin-top: 12px;
}
Traitement PHP côté serveur
// Traiter la réservation via AJAX
add_action('wp_ajax_nouvelle_reservation', 'traiter_reservation');
add_action('wp_ajax_nopriv_nouvelle_reservation', 'traiter_reservation');
function traiter_reservation() {
check_ajax_referer('reservation_nonce', 'nonce');
$nom = sanitize_text_field($_POST['nom']);
$tel = sanitize_text_field($_POST['telephone']);
$service = sanitize_text_field($_POST['service']);
$date = sanitize_text_field($_POST['date']);
$heure = sanitize_text_field($_POST['heure']);
$message = sanitize_textarea_field($_POST['message']);
// Créer un post de type réservation
$reservation_id = wp_insert_post([
'post_type' => 'reservation',
'post_title' => $nom . ' — ' . $service . ' — ' . $date,
'post_status' => 'pending',
]);
if ($reservation_id) {
update_post_meta($reservation_id, '_tel', $tel);
update_post_meta($reservation_id, '_service', $service);
update_post_meta($reservation_id, '_date', $date);
update_post_meta($reservation_id, '_heure', $heure);
update_post_meta($reservation_id, '_message', $message);
// Envoyer email de notification à l'admin
$admin_email = get_option('admin_email');
wp_mail($admin_email,
'Nouvelle réservation : ' . $service,
"Nom : $nom
Tél : $tel
Service : $service
Date : $date à $heure
Message : $message"
);
wp_send_json_success([
'message' => 'Réservation confirmée ! Nous vous contacterons sur WhatsApp.',
]);
}
wp_send_json_error(['message' => 'Erreur lors de la réservation.']);
}
4. Synchronisation Google Calendar
Amelia et Simply Schedule supportent la synchronisation bidirectionnelle avec Google Calendar :
- Créez un projet dans Google Cloud Console
- Activez l’API Google Calendar
- Générez des identifiants OAuth 2.0
- Dans le plugin, entrez le Client ID et Client Secret
- Autorisez l’accès à votre agenda
Avantage : chaque réservation apparaît automatiquement dans votre Google Agenda, et vos indisponibilités sont synchronisées en temps réel.
5. Notifications automatiques
Email de confirmation au client
Amelia envoie automatiquement des emails. Personnalisez le modèle dans Amelia → Réglages → Notifications :
Objet : Confirmation de votre rendez-vous — {service_name}
Bonjour {customer_firstName},
Votre rendez-vous est confirmé :
📋 Service : {service_name}
📅 Date : {appointment_date}
🕐 Heure : {appointment_startTime}
📍 Lieu : [Votre adresse à Dakar]
💰 Montant : {service_price} FCFA
Pour modifier ou annuler, contactez-nous sur WhatsApp :
+221 7X XXX XX XX
À bientôt !
{company_name}
Rappel WhatsApp automatique
// Envoyer un rappel WhatsApp 24h avant le RDV
// (nécessite l'API WhatsApp Business)
add_action('amelia_booking_reminder', function($booking) {
$phone = $booking['customer']['phone'];
$service = $booking['service']['name'];
$date = date('d/m/Y', strtotime($booking['appointment']['date']));
$heure = $booking['appointment']['startTime'];
$message = "Rappel : votre RDV *{$service}* est demain {$date} à {$heure}. "
. "Confirmez en répondant OK ou contactez-nous pour modifier.";
// Appel API WhatsApp Business
wp_remote_post('https://graph.facebook.com/v18.0/PHONE_ID/messages', [
'headers' => [
'Authorization' => 'Bearer VOTRE_TOKEN',
'Content-Type' => 'application/json',
],
'body' => json_encode([
'messaging_product' => 'whatsapp',
'to' => preg_replace('/[^0-9]/', '', $phone),
'type' => 'text',
'text' => ['body' => $message],
]),
]);
});
6. Paiement en ligne à la réservation
Amelia supporte Stripe et PayPal nativement. Pour le mobile money au Sénégal, ajoutez un bouton de paiement après la confirmation :
<!-- Après confirmation de la réservation -->
<div class="payment-options">
<h3>Payer maintenant (optionnel)</h3>
<p>Payez à l'avance pour garantir votre créneau.</p>
<a href="https://wa.me/221XXXXXXXXX?text=Paiement RDV [service] le [date] - [montant] FCFA"
class="btn-pay btn-pay--wave">
Payer par Wave
</a>
<p class="payment-note">
Envoyez le montant au +221 XX XXX XX XX via Wave,
puis envoyez la capture d'écran sur WhatsApp.
</p>
</div>
7. Optimisations pour le Sénégal
- WhatsApp comme canal principal : après chaque réservation, envoyez la confirmation sur WhatsApp plutôt que par email — les gens consultent WhatsApp 50x plus que leur boîte mail
- Créneaux adaptés : tenez compte des heures de prière (13h-14h vendredi) et proposez des créneaux en soirée (18h-20h) pour les professionnels
- Formulaire léger : minimisez le nombre de champs. Nom + téléphone + service + date suffisent. Le reste se discute sur WhatsApp
- Rappels SMS : utilisez l’API Orange SMS pour envoyer des rappels 24h avant — taux d’ouverture de 98% contre 20% pour les emails
- Paiement flexible : proposez le paiement sur place ou par mobile money — ne forcez pas le paiement en ligne qui peut freiner les réservations
Un système de réservation en ligne réduit les no-shows de 30-40% grâce aux rappels automatiques, et libère votre temps en éliminant les allers-retours par téléphone et WhatsApp pour convenir d’un créneau.
Pour ne pas tout faire vous-même
Notre équipe conçoit votre site, met en place domaine et hébergement, vous forme à la gestion, et reste joignable 6 mois pour les questions techniques.
À partir de 350 000 FCFA
Quel systeme de reservation pour quel usage ?
Le choix du systeme de reservation WordPress depend du type d activite. Trois familles d outils existent en 2026 et ne se substituent pas. Amelia (75 USD/an) excelle pour les services personnels (coach, therapeute, salon de beaute, formateur) qui reservent des creneaux 1-a-1. WooCommerce Bookings (249 USD/an) integre les reservations a un magasin existant et gere les paiements via WooCommerce. Bookly Pro (89 USD lifetime) offre un excellent compromis prix/fonctionnalites pour le multi-services et le multi-employes.
Pour la restauration, les solutions specialisees (OpenTable, LaFourchette) sont generalement plus performantes qu un plugin WordPress generique. Pour l hotellerie, idem avec Booking.com, Airbnb, et un PMS dedie. WordPress reserve pour : services professionnels, ateliers, cours, salons, soins, evenements ponctuels.
Les fonctionnalites qui font la difference
Au-dela du basique (calendrier, formulaire, confirmation email), six fonctionnalites distinguent un systeme professionnel.
Gestion multi-employes / multi-ressources. Si plusieurs personnes peuvent realiser le meme service (3 esthéticiennes pour des soins), le systeme attribue dynamiquement selon les disponibilites. Critique des qu il y a plus d une personne dans l equipe.
Synchronisation Google Calendar / Outlook. Les reservations s ajoutent automatiquement aux calendriers personnels. Les indisponibilites manuelles dans le calendrier bloquent les creneaux dans le systeme. Evite les double-bookings.
Paiement en ligne integre. Stripe, PayPal, Wave, Orange Money via le plugin de passerelle. Permet de demander un acompte (typiquement 20-50 pour cent) qui reduit drastiquement les no-shows.
Rappels automatiques. SMS J-1 et email J-2 reducent les no-shows de 30-60 pour cent. Tarif typique d envoi SMS 0,05-0,10 EUR par SMS, qui paye largement le client perdu evite.
Politique d annulation et de remboursement. Possibilite pour le client d annuler en self-service jusqu a X heures avant, avec ou sans remboursement selon la regle. Reduit les appels au support.
Reporting. Tableau de bord avec CA reserve par mois, taux de remplissage, top services, taux de no-show. Permet le pilotage et l optimisation des horaires.
Configuration Amelia pas a pas
Une configuration de base prend 30 minutes pour un cabinet de 1-3 employes. (1) Installer Amelia, activer la licence. (2) Definir les services (nom, duree, prix, capacite max). (3) Definir les employes avec leurs services et horaires hebdomadaires. (4) Configurer le formulaire de reservation (champs requis, conditions a accepter). (5) Connecter Stripe ou un mode de paiement. (6) Configurer les emails de confirmation, rappel, et annulation. (7) Inserer le shortcode [ameliabooking] dans une page publique. Site operationnel en moins d une heure pour 80 pour cent des cas.
Eviter les pieges classiques
Sur-personnalisation initiale. Le piege est de vouloir parametrer tous les details avant de mettre en ligne. La pratique gagnante : configuration minimale, mise en ligne, ajustements selon les retours reels en 2-4 semaines.
Pas d acompte. Pour les services a valeur (> 50 EUR), demander 20-30 pour cent d acompte non remboursable a la reservation. Reduit les no-shows de 40-70 pour cent et compense les pertes residuelles.
Trop de creneaux disponibles. Afficher chaque demi-heure de 8h a 22h cree un faux signal de disponibilite. Limiter les creneaux a la realite operationnelle (8 creneaux/jour, par exemple) maintient une perception de qualite et de selectivite.
Pas de regle minimum entre reservations. Sans tampon de 5-15 minutes entre deux rendez-vous, on enchaîne sans pause — fatigue, retards en cascade, qualite degradee. Toujours configurer un buffer.
FAQ
Comment gerer les reservations en Wave / Orange Money ?
Avec WooCommerce Bookings, integrer un plugin de paiement africain (Hubtel, PayDunya, FedaPay) qui ajoute Wave, Orange Money, Free Money comme moyens de paiement. Avec Amelia, l integration est moins native — passer par WooCommerce reste plus simple pour le marche africain.
Combien d employes Amelia ou Bookly peuvent gerer ?
Variable selon le plan. Amelia Lite gere 1 employe (gratuit), Pro illimite (75 USD/an). Bookly Pro illimite avec achats d add-ons. Pour 1-10 employes, ces deux outils suffisent largement. Au-dela, un SaaS dedie type Mindbody ou Booksy peut etre pertinent.
Comment integrer a un PMS hotellier ou a un POS magasin ?
Plus complexe. Ces integrations passent typiquement par Zapier ou Make qui synchronise les nouvelles reservations vers le PMS via webhook. Pour une integration profonde, un developpement custom de l ordre de 5 000-15 000 EUR.
Mes clients reservent rarement — un systeme est-il utile ?
Si moins de 5 reservations par semaine, un simple Calendly (10 EUR/mois) ou un formulaire Contact Form 7 + un Google Calendar peuvent suffire. Un plugin de reservation se justifie a partir de 10-15 reservations par semaine, ou quand le taux de no-show devient un probleme.
References
- Amelia — wpamelia.com
- Bookly Pro — booking-wp-plugin.com
- WooCommerce Bookings — woocommerce.com/products/woocommerce-bookings
- Calendly — calendly.com
- PayDunya (paiement africain) — paydunya.com