Pro Changelog

What’s new in Alnora

Every release, with the features, improvements and fixes it brought. Updates arrive automatically through WordPress while your licence is active.

  1. 1.3.8 Latest 18 August 2026

    Ask us for a language that is not yet in the list, and a fix to the developer utility that compiles translation catalogs.

    • Request your language. If the language your patients speak is not in the Language list under Settings → General, a note under the selector now links to our contact page — send us a message with the subject “Language request” and we will add it to a future release.
    • The developer utility that compiles a hand-edited .po translation into the .mo file WordPress reads wrote a malformed index and omitted the catalog header, so WordPress silently discarded the whole file and the plugin stayed in English. It now writes a valid catalog and understands wrapped lines, contexts, plurals and escapes, so translations edited in Poedit or Loco Translate apply correctly. The language files shipped with Alnora were built by a different script and were never affected.
  2. 1.3.7 16 August 2026

    Auto-clean the Consent log and Access audit log after a retention window you set, and a clearer GDPR dashboard — patient and staff names, an IP column on the audit log, per-table search, and a full-width stacked layout.

    • Auto-clean GDPR logs. Set a retention window in months for the Consent log and Access audit log under Settings → GDPR — entries older than that window are removed daily. Minimum 3 months; leave at 0 to keep entries forever.
    • The Consent log and Access audit log now show patient full names instead of numeric IDs, the staff member’s display name instead of a user ID, and the Access audit log gains an IP column.
    • A search box above each table on the GDPR page (Data export & erasure, Consent log, Access audit log) filters rows on the fly. The two logs are also now full width, stacked one under the other, for easier reading on wide screens.
  3. 1.3.6 5 August 2026

    Price and invoice in almost any currency — 149 world currencies, grouped by region — with online payments offered only where Stripe or PayPal can actually process them.

    • 149 world currencies in the clinic currency selector, grouped by region — Europe, Middle East, Africa, Americas and Asia & Pacific — each with the correct symbol, so almost any clinic can price and invoice in its local currency.
    • Online payments are now offered only for currencies Stripe or PayPal can actually charge in. Pick a currency neither gateway supports and only cash / pay on arrival is offered, instead of a card button that would fail at checkout.
    • Corrected the display name of a few currencies in the selector (Croatian Kuna, Ukrainian Hryvnia and New Zealand Dollar).
  4. 1.3.5 2 August 2026

    Free Telegram reminders — patients connect once and receive their appointment messages on Telegram, with their own templates and a new Notifications tab in the patient portal.

    • Telegram appointment messages — free to send, with no phone number to manage. Create a bot under Settings → Telegram Bot, and patients connect once by tapping “Connect Telegram” in their booking-received email or the new Notifications tab in the patient portal. Telegram has its own editable message templates — separate from SMS & WhatsApp — each with a per-message send switch.
    • Choose where the “Connect Telegram” invite appears — in the booking-received email, in the patient portal, or both (Settings → Telegram Bot). The invite is hidden automatically once a patient has already connected, so nobody is asked twice.
    • A new Notifications tab in the patient portal, where a patient can connect Telegram and see their connection status. It appears only when Telegram is switched on and set to show in the portal.
  5. 1.3.4 26 July 2026

    Location photos and contact details on the booking form, a mandatory location when booking on a patient’s behalf, and richer Zapier webhooks — including a payment event for every visit in a recurring course.

    • Location photos on the booking form. Add an image to each location (Locations → edit → Location image) and it appears above the name when a patient chooses a branch. The branch’s address, email and phone now show there too, so patients can see and contact the right location before booking.
    • Add appointment now requires a location when your clinic has more than one branch. The “Any location” option has been removed, so a booking made by staff is always tied to a specific branch — matching how the booking form already works.
    • Richer Zapier webhooks. Every event now carries a readable payment method (Card / PayPal / Cash), a per-charge breakdown — so a Card deposit and a PayPal balance appear separately with their own gateway references — and the appointment’s full location details (name, address, email, phone).
    • A payment webhook for every visit in a recurring course. Paying a recurring series — at booking, or later from an emailed invoice link — now sends a Zapier payment event for each appointment in the series with its own amount, instead of a single event for the whole course. The patient still receives just one email.
    • A duplicate, zero-amount payment webhook. Paying a balance from an emailed invoice link could send a second Zapier payment event a moment later showing a zero amount; only the genuine payment is now sent.
    • Calendar sync that could silently stop. When Google or Microsoft dropped the calendar connection, Settings still showed “Connected” while appointments quietly failed to sync. Alnora now detects a dropped connection and shows a clear reconnect prompt, and no longer tears down a working connection over a brief network blip.
  6. 1.3.3 24 July 2026

    Prescription emails, your clinic logo on documents and emails, an optional surname field, and rebuilt revenue reports with refund-aware net totals and date-range filters.

    • Prescription emails. A translated Prescription email template joins the others under Settings → Email, with an “Attach prescription PDF” option and a “send automatically when the appointment is completed” switch. From a patient’s medical record you can also send it by hand with one click, and see when it was last sent and to whom. It is only sent once a diagnosis or prescription has been added, and an automatic send never repeats one you already sent by hand. The patient’s portal login details have moved from the invoice PDF to the prescription PDF.
    • Your clinic logo on documents and emails. Add a logo under Settings → General. It appears at the top of the invoice and prescription PDFs in place of the clinic name, and — if you choose — in the header of every patient email (Settings → Email & reminders → Email header: clinic name or clinic logo, with an adjustable width).
    • Split the name field into Name and Surname. An optional Surname field for the booking form (Settings → Form → Core fields), off by default. When enabled it is collected in its own box and stored and shown together with the name everywhere.
    • Rebuilt revenue reports. Filter every figure by date range — this month, last month, last 30 days, last 12 months, this year, or a custom from/to. See net revenue, gross collected and refunds separately, the number of paid appointments and the average per paid appointment, and net revenue broken down by month, by doctor and — new — by payment method. The CSV export follows the selected range and adds a signed amount column so it totals straight to net.
    • A “Soft — 4 px” corner radius option under Settings → Customization.
    • More Zapier webhooks. Zapier now also fires when an appointment is refunded, completed, or marked a no-show — each with its own optional URL under Settings → Integrations → Zapier — alongside the existing created, confirmed, cancelled, rescheduled and payment-received events. The refund event carries the amount and whether it was a full or partial refund.
    • Require a deposit — hide cash when one is set. A new option under Settings → Payments removes the Pay in cash choice from the booking form while a deposit is configured, so a patient can only hold a slot by paying the deposit online. It applies only when Stripe or PayPal is enabled, and is off by default.
    • Uploaded medical and booking files are now private. Files attached to a medical record, or uploaded through a booking file-field, are no longer stored at a public, guessable /wp-content/uploads/ address. New uploads go to a protected location, existing ones are moved there automatically on update, and each is served only through a signed link to your staff and the patient it belongs to.
    • Emails follow your Corner radius setting, so the email frame matches the booking widget; and when the header shows your logo, the coloured header band is dropped so the logo sits on a clean background.
    • Reports now subtract refunds. Revenue figures counted completed payments but ignored refunds, overstating income; every figure is now net of refunds, with gross and refunds shown alongside. Revenue by doctor also lists a “Removed appointments” line for money collected on appointments that were later deleted, so the breakdown still reconciles with the total.
  7. 1.3.2 20 July 2026

    Richer invoices — attach the PDF to payment emails, itemise deposits and balances, and give every visit in a course its own invoice.

    • Attach the invoice PDF to your payment emails. Each invoice email now has an “Attach invoice PDF” switch under Settings → Email — the payment-link email can carry the unpaid invoice, and the payment-received email the paid one — so the patient always has a document to keep.
    • The invoice PDF now has a Status section showing the amount, how it was paid and whether it is paid or still due, so an invoice makes sense on its own without opening the appointment.
    • Deposit and balance are itemised separately on the invoice. When you take a deposit, the invoice lists the deposit and the balance on their own lines — each with its own amount, payment method and status — so a patient who paid the deposit by card and the balance by PayPal sees both.
    • The payment method is printed on paid invoices — Card, PayPal or Cash — shown only once money has actually been collected.
    • A separate invoice for every visit in a recurring course. Each appointment in a series gets its own invoice PDF with that visit’s own amount, and all of them are attached to the payment emails, instead of one invoice for the whole course.
    • A clearer message when a booking has been refunded. Trying to send a payment link for a fully refunded appointment used to say “This appointment is already paid”, which was confusing. It now explains the appointment was refunded and to cancel and rebook if one is needed.
    • Removed a stray developer note (a CSS class hint) from the custom-fields editor under Settings.
    • Some invoice labels showed in English whatever the patient language — “Full amount paid”, “Deposit paid” and similar now translate in all 13 languages, alongside the Card/PayPal/Cash payment-method labels.
    • A deposit that covers the whole price is now marked as paid. When a fixed deposit is larger than the service price — a €10 deposit on a €5 service, say — the appointment is recorded as paid in full and reads “already paid”, instead of showing a deposit with a negative balance the clinic could never collect.
  8. 1.3.1 17 July 2026

    Send a patient a link and let them pay online — deposits, balances and full amounts — and book patients in yourself from the admin.

    • Email a patient a payment link. The Invoice button on any appointment now opens a popup where you can download the invoice PDF as before, or send the patient a link to pay online. They pay by card or PayPal on your own site and the appointment is marked paid automatically — so a booking taken over the phone, or added by a doctor, no longer has to be chased by hand.
    • Deposit or full amount. If you take deposits, the Payment popup shows both figures with a button for each, so you can send the patient the deposit link or invoice the whole amount. The patient sees which they are paying, and a full payment is recorded as paid in full.
    • Collect the balance online after a deposit. Once a deposit is paid, the popup shows the deposit taken and the balance still owed, with a Send balance link button to email the patient a link to pay the rest by card or PayPal. A refund can then return the deposit and the balance together — even when they were paid on different methods.
    • See how a booking was paid at a glance. The Appointments list shows every method used — “Paid (PayPal, Stripe)” when a deposit and its balance went through different gateways — and refunds give you a separate control for each charge, labelled Deposit and Balance, so you can return either part on the method it was taken. For a recurring course, the figures are labelled as covering the whole series.
    • The popup shows the amount due, the address it will go to, and when a link was last sent and to whom — so nobody sends the same link twice, or keeps chasing a patient who has already been emailed.
    • Choose how long a payment link stays valid under Settings → Payments → Invoices — seven days by default. Links expire on their own, and rescheduling an appointment invalidates any link already sent, so a patient can never pay against a time that has since moved.
    • An Invoice / payment link email template joins the others under Settings → Email, with tokens for the patient, service, doctor, date, amount, reference and the payment button, so the wording and the translation stay yours.
    • A Pay Invoice page is created for you during the update, holding the new [alnora_invoice] shortcode. You can move the shortcode to a page of your own and select it under Settings → General → Shortcodes.
    • Add appointment — book on a patient’s behalf straight from the admin, for phone calls and walk-ins. Search your existing patients or add a new one, choose the doctor, service, date and time, then set the status and payment status by hand. Only times the doctor is genuinely free are offered, exactly as on the booking form, and no online checkout is ever started.
    • A booking added this way behaves exactly like one the patient made themselves: the confirmation and clinic emails, SMS and WhatsApp messages, calendar entries, telehealth links and Zapier webhooks all go out as normal, carrying the status and payment status you chose.
    • Appointment details now show “Added by”, naming the staff member who entered a booking. Bookings patients made themselves look exactly as before.
    • Your doctors can sign in and see their own information: a read-only My profile page with their details, locations, working hours and days off, and a My services page listing what they can be booked for. Everything stays managed by the clinic — a doctor cannot change their own schedule or make themselves unbookable.
    • A doctor signing in now sees only their own appointments rather than the whole clinic’s diary. Administrators and clinic managers still see everything.
    • A doctor is recognised automatically when their WordPress account uses the same email address as their doctor record, so there is no extra linking step. Only clinic staff accounts are matched, and a doctor already linked to another user is never claimed by an address match.
    • The per-doctor calendar colour picker has been removed — doctors now use the Alnora brand colour everywhere, so the booking form and calendars stay consistent. Nothing needs changing; existing doctors pick up the new colour automatically.
    • On the Add appointment screen a Clinic Doctor now sees only the locations they work at and books into a specific one — the “Any location” option is no longer offered to them. Reception and administrators still see every location.
    • The Record button and a booking’s medical-record details are now shown only to staff with records access, so a Clinic Receptionist no longer sees a button that only led to a permission error.
    • The minimum for “Release unfinished payments after” is now 15 minutes, giving slow card authentication, bank redirects and PayPal approval more room before a slot is freed.
    • The Category filter is now two independent toggles — Service category filter and Doctor category filter — so you can show category chips on the service step, the doctor step, either or neither. Your existing setting is carried over automatically.
    • Refreshed the admin Settings: on/off options are now branded toggle switches, and in-page links use the Alnora green.
    • A course of treatment could be charged for a single visit. When a payment was started for a recurring series outside the original booking flow, only one appointment’s price was collected instead of the whole course. Payment links now charge for every visit still unpaid — already-settled and cancelled visits are left out — and refunds continue to work per appointment as before.
    • A PayPal payment from an emailed link that the patient approved but never returned to confirm is now collected automatically on the webhook, the same as a payment made during booking, so the clinic is paid rather than left waiting.
    • A telehealth appointment added from the admin as Confirmed now includes its Zoom/Meet video link in the confirmation email and SMS — previously the link was missing even though it existed on the booking.
    • Payment links are signed and time-limited. Appointment references run in sequence, so a link without a signature would have let someone read another patient’s invoice by changing a number in the address.
  9. 1.3.0 10 July 2026

    Unfinished payments stop blocking your diary — and PayPal payments that were never collected now reach you.

    • Unfinished payments no longer hold a slot forever. If a patient starts a Stripe or PayPal checkout and never finishes — closes the tab, loses signal — the appointment used to keep that time blocked indefinitely. Alnora now frees it after a period you choose under Settings → Payments (30 minutes by default, minimum 10, or 0 to never release).
    • The payment is always checked with Stripe or PayPal before anything is released. If the patient did pay and simply never made it back to your site, the booking is kept, marked paid, and the confirmation goes out as normal — so nobody loses an appointment they paid for.
    • If a payment somehow arrives after a slot has been released, you are emailed the reference, patient and amount so you can refund it or rebook them. A payment can no longer arrive without you knowing.
    • Appointments waiting on a checkout now show as “Awaiting payment” in the Appointments list, so your team can see why a pending booking is holding a slot and that it will clear itself.
    • PayPal payments that patients approved but which were never collected. PayPal only completes a payment when the patient returns to your site, so if they approved it and then closed the tab, the money never reached you — and the reference was lost after an hour. Alnora now stores the order properly and collects these payments, either the moment PayPal notifies us or at the next check.
    • The booking calendar mislabelled its day columns when the week started on a day other than Monday or Sunday. Any first day of the week is now handled correctly.
    • Security: the page patients return to after paying has been hardened. A crafted link could previously cause an unpaid appointment to be removed. Returning from a checkout now requires a signed token tied to that specific payment, and only a still-pending, unpaid booking can be released — confirmed appointments, and anything marked paid, deposit, cash or refunded, are never affected. The free version on WordPress.org has no online payments and was not affected.
    • Stripe checkout sessions now expire in step with your release window, and Alnora listens for Stripe and PayPal’s own notifications, so a freed slot is usually bookable again within seconds rather than waiting for the periodic check.
    • The booking calendar now follows your site’s own Settings → General → “Week Starts On”, so it always matches the rest of WordPress. Alnora’s duplicate setting has been removed. If you had set a different first day in Alnora, the calendar will now follow WordPress — change it there if you prefer the other one.
  10. 1.2.9 5 July 2026

    The wording you type into your cancellation and reminder templates is now the wording that actually goes out.

    • “Reschedule — clinic notification” is now an editable template with its own send switch, so the copy your clinic receives when an appointment moves can be worded however you like. Previously it was fixed text.
    • Custom wording for the patient cancellation email, the reminder email and the SMS/WhatsApp reminder was saved and shown in the editor, but never actually sent — the built-in default went out instead. What you type is now what patients receive.
    • The patient portal showed “no appointments” when a request failed or the session had expired, rather than saying that something had gone wrong. It now reports the real problem.
    • Leaving the booking form or the patient portal open until its security token expires no longer shows a raw “Cookie check failed” error. It now explains that the page has been open too long and asks you to refresh.
  11. 1.2.8 2 July 2026

    Search long doctor and service lists, and decide exactly which emails and messages go out.

    • Optional search boxes on the booking form — let patients type a doctor’s name or a service instead of scrolling. Each is a separate toggle, so you can switch on whichever list is long. Search works alongside the category filter: the chips narrow the list first, and the search looks within it.
    • A “Send this email” switch on every email template, and “Send this message” on every SMS/WhatsApp template — turn off any single notification, such as the clinic’s own new-booking copy, without touching the rest. Everything stays on unless you say otherwise.
    • Emails now show each location’s address next to its name, so patients know where to actually turn up rather than just which branch. Custom templates using the {location} token pick this up automatically — no edits needed.
    • Click any completed step in the booking form’s progress bar to jump straight back to it, as well as using the Back button. Answers already given are kept.
    • When a booking form is limited to one doctor by shortcode, it no longer offers locations that doctor doesn’t work at. Previously every location was listed, and picking the wrong one showed a misleading “no free times on this day” message; now only the doctor’s real locations appear, and the location step disappears entirely when just one is left.
  12. 1.2.7 27 June 2026

    Dates and times now follow your WordPress format settings everywhere.

    • The date and time format now follows your WordPress → Settings → General options across the whole plugin — booking slots, the your-details step, all emails, SMS and WhatsApp messages, the patient portal, and every admin page. Set 12-hour or 24-hour time and your preferred date style once, and it applies consistently everywhere.
    • Zapier webhooks now include ready-to-read “start” and “end” date/time fields alongside the raw values, so your automations can use them without any extra formatting.
  13. 1.2.6 20 June 2026

    More control over fixed deposits.

    • A new “Always charge the full deposit” option for fixed deposits — collect the full deposit even when the chosen service is free or costs less than the deposit amount. When it’s off, the deposit is still capped at the service price, as before.
  14. 1.2.5 14 June 2026

    Accurate timezones for clinics that run on a different timezone from their website, plus tidier recurring cash bookings.

    • Google Calendar events, Zoom telehealth meetings and appointment reminders now follow your clinic’s timezone setting. If your clinic timezone differs from your website’s, they all now line up at the correct local time — and keep working across summer/winter clock changes.
    • The main admin menu is now labelled “Alnora Clinic”.
    • The “pay in cash at the clinic” status is now applied to every appointment in a recurring series, not just the first one.
  15. 1.1.2 9 June 2026

    Plan, preview and pay for recurring appointments — patients see every upcoming visit before booking and can settle the whole course in one online payment.

    • See every recurring visit before you book — choose a repeat frequency and the booking form now lists the exact upcoming dates and times, taken from the doctor’s genuinely free slots (and the chosen location).
    • Pay for a whole course of recurring appointments online in one checkout — the total covers every visit, each appointment is marked paid, and a single visit can still be refunded on its own if you cancel it.
    • Recurring repeats now stay on schedule: if the exact time isn’t free, the booking keeps the same day and moves to the nearest free time — or, only if that day is fully booked, to the closest following day — instead of skipping a whole week, fortnight or month.
    • A recurring booking is no longer completed if one of the previewed times was taken while the form was being filled in — the patient is asked to review the dates, preventing a double booking.
    • Recurring booking emails now show the full amount for the whole series, not just the first appointment, and include the patient’s reason/notes.
    • Refunds made from the Stripe or PayPal dashboard for a recurring series now update every appointment in the series, not just one.
    • Removing or cancelling one appointment in a recurring series no longer deletes the uploaded files shared with the other appointments’ medical records.
    • Rich-text service descriptions now keep their paragraphs in the “Read more” popup.
    • Cancelling an appointment from the admin no longer occasionally sends a duplicate cancellation email.
  16. 1.1.1 5 June 2026

    Book several services in one visit, organise your team and menu with categories, and reschedule a booking in a couple of clicks.

    • Multiple services in one appointment — patients can pick several services in a single booking, with durations and prices added up automatically and the whole block reserved on the doctor’s schedule.
    • Doctor and service categories — group your team and your service menu, with a category filter on the booking form so patients narrow down faster.
    • Reschedule an appointment straight from its “More info” panel: pick a new date and time from the doctor’s genuinely free slots. The patient gets a new email, SMS and WhatsApp, and calendars (Google/Outlook) and Zapier update automatically.
    • Editable SMS & WhatsApp message templates — a single template drives both channels, so you never edit two copies.
    • Rich-text service descriptions with a “Read more” popup on the booking form.
    • The booking form’s date & time step now loads noticeably faster.
    • Search and a new category column on the Services list, plus search on the Appointments and Doctors lists.
    • Invoices list each service on its own line, and “Service” becomes “Services” automatically across emails, invoices and calendars when more than one is booked.
    • Tidier, shorter calendar event titles so busy days stay readable, and shorter appointment reference numbers.
    • New “first visit” badge on the Appointments list so you can spot new patients at a glance.
    • Recurring appointments now carry every selected service to each occurrence.
    • Licence and status notices always appear above the page title in the admin.
  17. 1.1.0 1 June 2026

    Offer a service across several doctors — not just one.

    • Assign a service to multiple doctors — pick any set of doctors, or leave it open to every doctor.
    • The booking form now shows each service only to the doctors who actually offer it.
    • The service editor now uses a multi-select doctor list in place of the single “Offered by” dropdown.
  18. 1.0.0 May 2026

    First public release of Alnora Pro.

    • Multi-step booking wizard (location → doctor → service → date & time → details), as a shortcode and Gutenberg block.
    • Unlimited doctors and staff, each with their own working hours, breaks and holidays.
    • Services with duration, price and per-doctor assignment.
    • Multiple clinic locations.
    • Recurring appointments and a waitlist for fully-booked days.
    • Online payments with Stripe & PayPal, deposits, and automatic invoice PDFs.
    • Encrypted patient medical records (AES-256), with prescription & diagnosis PDFs.
    • Patient self-service portal and CSV import for patients & doctors.
    • Email, SMS and WhatsApp reminders (Twilio), with fully editable email templates.
    • Google Calendar & Outlook sync, and Zoom / Google Meet telehealth links.
    • Zapier webhooks and monthly revenue reporting.
    • Roles for Admin / Doctor / Receptionist, and a full GDPR toolkit (consent log, export, erasure).
    • Booking widget customization (fonts, colours, radius) and 13 languages with localised PDFs.

Get every update as it ships.

An active Pro or Clinic licence keeps your clinic on the latest version — automatically.