• v1.3.0 3c41d1119d

    v1.3.0
    CI / No Debug Code (push) Successful in 2s
    CI / PHPStan (push) Successful in 2m56s
    CI / Tests (PHP 8.3) (push) Successful in 2m45s
    CI / Tests (PHP 8.2) (push) Successful in 43s
    CI / Tests (PHP 8.1) (push) Successful in 54s
    CI / Coding Standards (push) Successful in 3m1s
    Release / Build and Publish Release (push) Successful in 3m1s
    Release / Open next-version bump PR (push) Successful in 3s
    CI / Build Plugin Zip (push) Successful in 2m49s
    Stable

    thatguygriff released this 2026-07-29 19:19:23 +00:00 | 41 commits to main since this release

    Added

    • Parent and guardian accounts. A parent registers once and manages lessons for one or more children, who need no login of their own. The signup form gains an "I'm registering as a parent or guardian" tick that reveals a block per child — name, date of birth, and the studio's account-signup questions asked per child, since those describe the student rather than the account holder. Signup policies are recorded once per child with the guardian named as the person who agreed, which is the record that actually means something: "this guardian accepted version N on behalf of this child, at this time, from this address." A guardian can also be a student themselves and book their own lessons from the same account.
    • A "Who is this for?" picker on the booking and group-class forms, listing children first and the account holder last — so the default selection is never the parent, and a lesson meant for a child is not quietly booked and billed in the parent's name. An account with only itself on the list sees no picker and behaves exactly as before. A guardian's upcoming-lessons panel covers the whole household, each row naming whose lesson it is, and they can cancel or withdraw for any of their children.
    • A Family page for guardians ([us_family], or the Family block) to add, edit and remove children after signup. Removing a child is refused once they have lessons or enrolments on record — that history belongs to them, and the studio unpicks it by hand rather than the page orphaning it.
    • One family, one bill. Payments record the child the lesson was for and the guardian who owes it, so per-child reporting is unchanged while notices, receipts and the payment step all go to the parent. Account credit is held by the payer, so a credit from one child's cancelled lesson can settle a sibling's next charge, and the billing-method override (comp / card / e-transfer) is one setting on the guardian rather than one per child. The daily billing scan sends a guardian one notice covering every child, with each line naming whose lesson it is.
    • Students in wp-admin gains a Family column linking a child to their guardian and a guardian to their children, and the student screen gains a Family panel. A child's row shows the guardian's email — a child's own address is a placeholder that can never receive mail — and their credit balance is labelled with whose account actually holds it.

    Changed

    • Child accounts cannot be signed in to. They hold the student role so every existing lookup keeps working, but authentication is refused outright and the booking capability is withheld, so the only route to a lesson in a child's name is their guardian's authorised booking.
    Downloads