{"id":324786,"date":"2026-06-20T14:30:59","date_gmt":"2026-06-20T14:30:59","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/clinicpress\/"},"modified":"2026-06-20T22:44:29","modified_gmt":"2026-06-20T22:44:29","slug":"alnora-clinic","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/alnora-clinic\/","author":23517501,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.0","requires":"6.0","requires_php":"8.1","requires_plugins":null,"header_name":"Alnora - Booking for Private Clinics","header_author":"Alnoraclinic","header_description":"Appointment booking for private medical clinics \u2014 doctors, services, schedules, patient records and automated email notifications.","assets_banners_color":"094050","last_updated":"2026-06-20 22:44:29","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/alnora-booking.com","header_author_uri":"https:\/\/profiles.wordpress.org\/alnoraclinic\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":42,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"alnoraclinic","date":"2026-06-20 14:30:21"},"1.1.0":{"tag":"1.1.0","author":"alnoraclinic","date":"2026-06-20 22:44:29"}},"upgrade_notice":{"1.1.0":"<p>Adds search to the Appointments and Patients lists, a past-appointments filter, faster admin rendering, and status help. No database or configuration changes.<\/p>","1.0.0":"<p>Initial release \u2014 no upgrade steps required.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3579856,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3579856,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3579856,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3579856,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"alnora-clinic\/booking-form":{"name":"alnora-clinic\/booking-form","title":"Alnora Booking"}},"tagged_versions":["1.0.0","1.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3579856,"resolution":"1","location":"assets","locale":"","width":1809,"height":881},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3579856,"resolution":"2","location":"assets","locale":"","width":1807,"height":884},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3579856,"resolution":"3","location":"assets","locale":"","width":1822,"height":839},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3579856,"resolution":"4","location":"assets","locale":"","width":1824,"height":851},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3579856,"resolution":"5","location":"assets","locale":"","width":1825,"height":846},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3579990,"resolution":"6","location":"assets","locale":"","width":1038,"height":573},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3579990,"resolution":"7","location":"assets","locale":"","width":1032,"height":646},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3579990,"resolution":"8","location":"assets","locale":"","width":1028,"height":801},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3579990,"resolution":"9","location":"assets","locale":"","width":1030,"height":840}},"screenshots":{"1":"The multi-step booking wizard as patients see it on the front end.","2":"The appointments list with inline status control.","3":"The doctor profile editor with working hours and break configuration.","4":"The dashboard with appointment stats at a glance.","5":"The settings screen with autosave."}},"plugin_section":[],"plugin_tags":[8132,269,43578,15159,10315],"plugin_category":[40],"plugin_contributors":[268082],"plugin_business_model":[],"class_list":["post-324786","plugin","type-plugin","status-publish","hentry","plugin_tags-appointments","plugin_tags-booking","plugin_tags-clinic","plugin_tags-doctor","plugin_tags-medical","plugin_category-calendar-and-events","plugin_contributors-alnoraclinic","plugin_committers-alnoraclinic"],"banners":{"banner":"https:\/\/ps.w.org\/alnora-clinic\/assets\/banner-772x250.png?rev=3579856","banner_2x":"https:\/\/ps.w.org\/alnora-clinic\/assets\/banner-1544x500.png?rev=3579856","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/alnora-clinic\/assets\/icon-128x128.png?rev=3579856","icon_2x":"https:\/\/ps.w.org\/alnora-clinic\/assets\/icon-256x256.png?rev=3579856","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/alnora-clinic\/assets\/screenshot-1.png?rev=3579856","caption":"The multi-step booking wizard as patients see it on the front end."},{"src":"https:\/\/ps.w.org\/alnora-clinic\/assets\/screenshot-2.png?rev=3579856","caption":"The appointments list with inline status control."},{"src":"https:\/\/ps.w.org\/alnora-clinic\/assets\/screenshot-3.png?rev=3579856","caption":"The doctor profile editor with working hours and break configuration."},{"src":"https:\/\/ps.w.org\/alnora-clinic\/assets\/screenshot-4.png?rev=3579856","caption":"The dashboard with appointment stats at a glance."},{"src":"https:\/\/ps.w.org\/alnora-clinic\/assets\/screenshot-5.png?rev=3579856","caption":"The settings screen with autosave."},{"src":"https:\/\/ps.w.org\/alnora-clinic\/assets\/screenshot-6.png?rev=3579990","caption":""},{"src":"https:\/\/ps.w.org\/alnora-clinic\/assets\/screenshot-7.png?rev=3579990","caption":""},{"src":"https:\/\/ps.w.org\/alnora-clinic\/assets\/screenshot-8.png?rev=3579990","caption":""},{"src":"https:\/\/ps.w.org\/alnora-clinic\/assets\/screenshot-9.png?rev=3579990","caption":""}],"raw_content":"<!--section=description-->\n<p>Alnora replaces the usual tangle of a generic booking plugin + spreadsheets with one focused product made for private clinics with 1\u201310 doctors: dentists, psychologists, cosmetic clinics, dermatologists, physiotherapists and GPs.<\/p>\n\n<p>Features in this version:<\/p>\n\n<ul>\n<li>Doctor profiles with photo, specialisation, bio, languages and per-doctor weekly working hours (with breaks).<\/li>\n<li>Bookable services with duration, buffer time, price and colour.<\/li>\n<li>A modern, multi-step booking wizard for patients (choose doctor \u2192 service \u2192 date &amp; time \u2192 details), embeddable via shortcode or Gutenberg block.<\/li>\n<li>A slot-availability engine that respects working hours, breaks, buffers, existing bookings and your booking window.<\/li>\n<li>Patient records with email\/phone encrypted at rest (AES-256) and a SHA-256 email hash for lookups.<\/li>\n<li>GDPR consent capture with timestamp + IP logging.<\/li>\n<li>Transactional emails: booking confirmation to the patient, notification to the clinic, status-change emails and automatic reminders (hourly cron).<\/li>\n<li>A clean, branded wp-admin: dashboard with stats, appointment list with inline status control, plus doctor, service, patient and settings screens.<\/li>\n<li>REST API under the <code>alnora-clinic\/v1<\/code> namespace.<\/li>\n<\/ul>\n\n<h3>Notes for developers<\/h3>\n\n<ul>\n<li>The booking form and admin tables are dependency-free <strong>vanilla JavaScript<\/strong> (no build step required). The optional Gutenberg block uses <code>wp.element<\/code> and also needs no build step.<\/li>\n<li>For production, define a fixed encryption key in <code>wp-config.php<\/code>:\n  define( 'ALNC_ENCRYPTION_KEY', 'your-32-char-random-key-here' );\nIf omitted, a key is generated and stored once in the options table so the plugin works out of the box.<\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>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.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>alnora-clinic<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate <strong>Alnora<\/strong> through the <em>Plugins<\/em> menu in WordPress. On activation the plugin creates its database tables, custom roles and a <strong>Book an Appointment<\/strong> page containing the booking shortcode.<\/li>\n<li>Go to <strong>Alnora \u2192 Doctors<\/strong> and add at least one doctor (set their working hours).<\/li>\n<li>Go to <strong>Alnora \u2192 Services<\/strong> and add at least one service.<\/li>\n<li>Visit the auto-created booking page (link shown under <strong>Alnora \u2192 Settings<\/strong>) to test a booking.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20booking%20form%20work%20with%20any%20theme%3F\"><h3>Does the booking form work with any theme?<\/h3><\/dt>\n<dd><p>Yes. The booking wizard is rendered inside a scoped <code>.alnc-booking<\/code> container with its own styles. A small CSS reset neutralises common theme interference (button padding, box-shadow, etc.).<\/p><\/dd>\n<dt id=\"how%20do%20i%20embed%20the%20booking%20form%3F\"><h3>How do I embed the booking form?<\/h3><\/dt>\n<dd><p>Place the shortcode <code>[alnora_booking]<\/code> on any page, or use the <strong>Alnora Booking Form<\/strong> Gutenberg block. A <strong>Book an Appointment<\/strong> page is created automatically on activation.<\/p><\/dd>\n<dt id=\"can%20i%20pre-select%20a%20doctor%20or%20service%20in%20the%20shortcode%3F\"><h3>Can I pre-select a doctor or service in the shortcode?<\/h3><\/dt>\n<dd><p>Yes. Use <code>[alnora_booking doctor=\"1\" service=\"2\"]<\/code> where the numbers are the doctor\/service IDs shown in their respective admin screens.<\/p><\/dd>\n<dt id=\"is%20patient%20data%20stored%20securely%3F\"><h3>Is patient data stored securely?<\/h3><\/dt>\n<dd><p>Patient email and phone are encrypted at rest using AES-256. A SHA-256 hash of the email is stored separately for lookups. GDPR consent is recorded with a timestamp and IP address.<\/p><\/dd>\n<dt id=\"how%20many%20doctors%20can%20i%20add%3F\"><h3>How many doctors can I add?<\/h3><\/dt>\n<dd><p>There is no limit \u2014 add as many doctors as your clinic needs, each with their own profile, working hours and services.<\/p><\/dd>\n<dt id=\"where%20do%20i%20configure%20email%20notifications%3F\"><h3>Where do I configure email notifications?<\/h3><\/dt>\n<dd><p>Go to <strong>Alnora \u2192 Settings \u2192 Email &amp; reminders<\/strong>. You can set the from name, from address, admin notification email and reminder lead time.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20wpml%20or%20polylang%3F\"><h3>Does it work with WPML or Polylang?<\/h3><\/dt>\n<dd><p>All strings are translation-ready via the <code>alnora-clinic<\/code> text domain. Full WPML\/Polylang compatibility is planned for a future release.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: search the Appointments list by reference, patient name, email or phone.<\/li>\n<li>New: search the Patients list by name, email or phone.<\/li>\n<li>New: the Appointments list now hides past days by default, with a \"Show past appointments\" button to reveal them (today's appointments stay visible so they can still be marked Completed \/ No-show).<\/li>\n<li>New: \"Load more\" on the Appointments list \u2014 the first 10 rows load instantly and more are revealed on demand for faster page rendering.<\/li>\n<li>New: an information icon beside the \"Status\" column header explains what each appointment status means.<\/li>\n<li>Improvement: hidden settings sub-pages are now removed from the admin menu in PHP instead of via a CSS :has() rule, removing an expensive per-interaction style recalculation in the admin.<\/li>\n<li>Improvement: the WordPress media library is now loaded only on the Doctors screen (where the photo uploader needs it), speeding up the other admin pages.<\/li>\n<li>Improvement: consistent button focus styling in the admin.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: doctors, services, working hours, availability engine, booking wizard, patient records, GDPR consent log, transactional emails, reminders and branded admin.<\/li>\n<\/ul>","raw_excerpt":"Appointment booking and clinic management built exclusively for private medical practices.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/324786","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=324786"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/alnoraclinic"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=324786"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=324786"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=324786"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=324786"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=324786"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=324786"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}