• v1.4.1 5d98aedfa5

    v1.4.1
    CI / PHPStan (push) Successful in 2m53s
    CI / Coding Standards (push) Successful in 3m2s
    Release / Build and Publish Release (push) Successful in 2m59s
    Release / Open next-version bump PR (push) Successful in 4s
    CI / Tests (PHP 8.3) (push) Successful in 2m42s
    CI / Build Plugin Zip (push) Successful in 2m46s
    CI / Tests (PHP 8.1) (push) Successful in 44s
    CI / Tests (PHP 8.2) (push) Successful in 51s
    CI / No Debug Code (push) Successful in 2s
    Stable

    thatguygriff released this 2026-07-30 15:30:56 +00:00 | 10 commits to main since this release

    Added

    • Group classes now appear in "Your upcoming lessons". A class is stored as a term rather than as bookable slots, so nothing that listed lessons could ever show one — a student whose whole term was a group class saw an empty schedule, and an instructor teaching one saw nothing on their My Lessons page. Each remaining session of a class you are enrolled in now sorts in among your lessons by date, labelled group class; instructors see every session of the classes they teach, one row per session however many students are in it. A session has no Cancel button, because there is no such thing as cancelling one date of a term — withdrawing from the class is still done from the class page.
    • A class you are enrolled in shows up whether or not its schedule is pinned to a clock. Class time and duration are both optional on the offering form, and the schedule note is there so a studio can simply write "Tuesdays 4:00pm" — so a class with a time but no duration lists its dates and says when each session starts rather than guessing when it ends, and a class with no time at all gets a single row carrying its schedule note (or its term dates) where the time would go. Only a class whose last day has passed drops off the list.
    • A student's admin detail page now shows Booked by in the Account section — the name of the parent or guardian who books and pays for them, linked to their own page. It was only stated further down under Profile, and only when there was one; the row is now always there, saying in words when a student books for themselves.
    • The same group-class sessions now appear in Upcoming lessons on a student's admin detail page, so one table answers "what are they booked into next week?". Only upcoming ones — the Group-class enrolments table below already holds the history.
    • A policy can be renamed. The title was fixed at creation, so a typo or a change of wording meant creating a second policy and re-collecting everyone's acceptance. Renaming changes only what students read above the policy text: the slug stays put, so every version already accepted stays attached.

    Fixed

    • People are named by their name again, not their email address. Anywhere the plugin named a person it could show their email instead — "Managed by [email protected]" in the students table, the same under Booked by, and instructor names on the class pages. WordPress starts a new account's nickname off as its username, and signup uses the email address as the username, so the address became the nickname of every self-registered account; the name they had typed was sitting in the account's display name the whole time. Names are now read from there when the nickname turns out to be an address, so existing accounts read correctly with nothing to fix by hand, and new signups store the name properly in the first place. Students added by a parent were never affected.
    • Deleting a parent now removes the students they booked for. A managed student account has no login of its own and exists only so its parent has somebody to book for — with the parent gone nobody can reach it, book for it, or be billed for it, so it was left stranded on the roster still holding lesson times. Deleting a parent now releases each of their students' upcoming lessons and enrolments on the same terms as their own, and deletes the accounts. Removing a student from the family screen is unchanged and still refuses one with lessons on record.
    • The upcoming-lessons panel no longer collapses onto itself in some themes. Rows could render on top of one another and the status badge's colour could stop short of the text inside it. Both came from the same thing: the panel never stated its own line spacing, so a theme setting a line height of zero anywhere above it — a common icon-font reset — was inherited straight through, leaving each line of text taller than the space allotted to it. The panel now sets its own.
    • Deleting a student now gives back what they had booked. WordPress deletes a user without knowing anything about lessons, so their bookings were left behind: the times stayed marked as booked and nobody else could take them, the lessons stayed on the instructor's schedule under a name that no longer resolved, and a group class kept a seat filled by nobody. Deleting an account now cancels each of its upcoming lessons, frees the time for rebooking, cancels its active class enrolments, and voids any payment still pending on them. Past lessons are left exactly as they are — they happened, and the payment report has to keep adding up. A paid lesson is not credited back: a credit could only be spent on the account being deleted, so a refund owed to someone who has left stays the studio's decision to make.
    • A weak password is now caught before the form is submitted, not after. The strength meter scores the password as you type, but zxcvbn's dictionary arrives a moment after the page loads — so a password typed straight away was never scored at all, and the first you heard of it was the server rejecting the whole form. The password is now re-scored on submit, so the verdict is always the one your password actually earns.

    Changed

    • Signup is one page again. The studio's registration questions used to be a second step behind a Next button; they are now asked on the main form, in an About you panel above the students you are adding. What the studio needs to know about you is part of registering, not a sequel to it — and there is now one submit rather than three.
    • Signup asks an adult student for their birth year, the same four-digit year already asked of every student being registered on someone else's behalf. It is asked only when you are a student yourself — choosing on behalf of one or more students leaves the whole About you panel out, since those questions describe a student and in that case you are not one.
    Downloads