WS Scheduler
Système de prise de rendez-vous complet avec popup calendrier, formulaire et emails automatiques.
by WebStrategy · github.com/wordpress-freelance/ws-scheduler · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/wordpress-freelance/ws-scheduler/archive/refs/heads/main.zipSystème de prise de rendez-vous pour WordPress, sans abonnement, sans dépendance externe. Popup calendrier avec disponibilités en temps réel, formulaire de réservation, emails HTML automatiques au client et à l'administrateur.
Compatible Avada, Elementor, Divi, et tous les principaux page builders. Compatible LiteSpeed Cache, WP Rocket, W3 Total Cache, WP Super Cache.
Fonctionnalités (version Free)
- Popup booking calendrier — disponibilités en temps réel
- Horaires d'ouverture, durée des créneaux configurables (15 à 120 min)
- Trois modes d'indisponibilité : période complète, créneau ponctuel, récurrence hebdomadaire
- Email HTML de confirmation au client + notification admin
- Tableau de bord admin — gestion du statut (confirmé / en attente / annulé)
- Shortcode
[ws_booking_button]et classe CSS.ws-book-btnpour les builders - Multilingue (FR/EN/ES/DE), entièrement traduisible
- Hooks RGPD natifs :
wp_privacy_personal_data_exportersetwp_privacy_personal_data_erasersbranchés
Version Pro
WS Scheduler Pro ajoute :
- Synchronisation Google Calendar
- Génération de liens Google Meet par rendez-vous
- Templates email personnalisables (couleurs, logo, textes)
- White-label : retrait du crédit "Powered by WebStrategy"
Installation
1. Télécharger le ZIP depuis WordPress.org ou la page Releases.
2. Plugins → Ajouter → Téléverser → Activer.
3. WS Scheduler → Réglages → configurer horaires, durée, email admin.
4. Placer [ws_booking_button] sur une page, OU appliquer .ws-book-btn à un bouton dans le builder.
Architecture
WPPB strict : orchestrateur → loader → admin/public/ajax/db/slots/email/privacy.
ws-scheduler/
├── ws-scheduler.php # entry point + activation hooks
├── uninstall.php # cleanup tables + options
├── includes/
│ ├── class-ws-scheduler.php # orchestrateur
│ ├── class-ws-scheduler-loader.php # routing actions/filters/shortcodes
│ ├── class-ws-scheduler-activator.php
│ ├── class-ws-scheduler-deactivator.php
│ ├── class-ws-scheduler-i18n.php
│ ├── class-ws-scheduler-db.php # appointments + unavailabilities
│ ├── class-ws-scheduler-slots.php # moteur de slots
│ ├── class-ws-scheduler-email.php # templates HTML
│ ├── class-ws-scheduler-ajax.php # endpoints AJAX
│ └── class-ws-scheduler-privacy.php # exporter / eraser RGPD
├── admin/
│ ├── class-ws-scheduler-admin.php
│ └── partials/ # dashboard, settings, unavail, licence
├── public/
│ ├── class-ws-scheduler-public.php
│ └── partials/ # button + popup
└── tests/ # 129 tests PHPUnit + WP_Mock
Hooks PHP
Filters
| Filter | Default | Description |
|---|---|---|
ws_scheduler_load_google_fonts |
true |
Désactiver le chargement de Lora + Inter depuis Google Fonts (RGPD strict). |
ws_scheduler_after_booking |
'' |
Permet d'injecter un lien Meet ou autre après création du RDV. Reçoit ($meet_link, $appointment). |
Actions natives WP utilisées
wp_privacy_personal_data_exporters— Export RGPD (Outils → Données personnelles)wp_privacy_personal_data_erasers— Effacement RGPDadmin_init→wp_add_privacy_policy_content— Texte suggéré pour la politique de confidentialité
Conformité WordPress.org
Audit sur les 18 guidelines du Plugin Directory :
- GPL-2.0+ (guideline 1)
- Pas de trialware — version Free entièrement fonctionnelle (5)
- Pas de tracking sans consentement (7)
- Pas d'exécution de code tiers ; CDN uniquement pour les fonts, désactivable (8)
- "Powered by" optionnel et OFF par défaut (10)
- Pas de hijacking dashboard, pas de masquage de notices système (11)
- Hooks RGPD branchés
- jQuery via dépendance déclarée — pas de copie embarquée (13)
Tests
composer install
composer test # phpunit --no-coverage
composer test:coverage # avec rapport Clover + HTML
Matrix CI : PHP 7.4 / 8.0 / 8.1 / 8.2 — 129 tests, 264 assertions.
Licence
GPL-2.0-or-later — © WebStrategy