Alnora – Booking for Private Clinics
Alnora replaces the usual tangle of a generic booking plugin + spreadsheets with one focused product made for private clinics with 1–10 doctors: dentists, psychologists, cosmetic clinics, dermatologists, physiotherapists and GPs.
Features in this version:
- Doctor profiles with photo, specialisation, bio, languages and per-doctor weekly working hours (with breaks).
- Bookable services with duration, buffer time, price and colour.
- A modern, multi-step booking wizard for patients (choose doctor → service → date & time → details), embeddable via shortcode or Gutenberg block.
- A slot-availability engine that respects working hours, breaks, buffers, existing bookings and your booking window.
- Patient records with email/phone encrypted at rest (AES-256) and a SHA-256 email hash for lookups.
- GDPR consent capture with timestamp + IP logging.
- Transactional emails: booking confirmation to the patient, notification to the clinic, status-change emails and automatic reminders (hourly cron).
- A clean, branded wp-admin: dashboard with stats, appointment list with inline status control, plus doctor, service, patient and settings screens.
- REST API under the
alnora-clinic/v1namespace.
Languages
The patient-facing booking form and the transactional emails are available in 13 languages out of the box — English, German, French, Spanish, Italian, Dutch, Polish, Czech, Swedish, Danish, Norwegian, Ukrainian and Russian — chosen with a single Patient language setting (independent of your site language). Every string is translation-ready via the alnora-clinic text domain and standard .mo/.po files, so you can add or refine languages with tools like Loco Translate. (Localised month names in email dates additionally require the matching WordPress language to be installed under Settings → General → Site Language.)
Notes for developers
- The booking form and admin tables are dependency-free vanilla JavaScript (no build step required). The optional Gutenberg block uses
wp.elementand also needs no build step. - For production, define a fixed encryption key in
wp-config.php: define( ‘ALNC_ENCRYPTION_KEY’, ‘your-32-char-random-key-here’ ); If omitted, a key is generated and stored once in the options table so the plugin works out of the box.
External Services
This plugin does not connect to, or send any data to, external services. All assets (fonts, scripts and styles) are bundled with the plugin and served from your own site.
