3. Seasons and registration¶
Menu: Club Management → Seasons
A season is a registration window with a name, e.g. 2025/26. Each season collects a yes/no from
every player's parent: are they playing this year?
Creating a season¶
Click Add Season, give it a name, and save. Then open it with Manage to finish setting it up.
You can set the date the season starts at the same time. Leave it blank and the plugin uses
1 August of the season's own year, read off its name — 2026/27 starts on 1 August 2026.
The active season¶
One season at a time is the active season. It is what the admin screens default to — the registration status shown on squad pages, the season pre-selected on a new payment product, and the season the public registration form uses when no season is named explicitly. Click Set active on the Seasons list to change it.
Season settings¶
On a season's Manage page:
- Season name — as shown to parents.
- Registration page — the WordPress page that hosts this season's registration form. It must
contain the
[cpm_registration_form]shortcode; the plugin warns you if the page you pick doesn't appear to. This is the page parents land on from their emailed link, so it has to be set before any approval emails can be sent. - Season starts — the date the season begins, 1 August by default. It is the line that decides who joined part way through: see When a player joined. Clear the field to go back to the default.
- Registration payment — a note, not a setting: it says which products a confirmed player's guardian will be offered on this page, and points at where that is configured. See What happens on confirmation.
- Registration form text — override the heading, introduction and button label shown on the
public form for this season. Leave the heading or introduction blank to hide it.
{season}is replaced with the season name.
Getting parents to confirm¶
The Player registration status table lists every player with their status for this season. Select the players you want and email their parents a private approval link.
- One email per parent, not per child. A parent with three children at the club gets a single email listing all three, with one link that confirms them together.
- Emails are queued and sent in the background, so the page comes straight back and a banner keeps you posted while the queue drains.
- Each player's row records when the email covering them was last sent, so you can see who has been chased and who hasn't.
- If delivery feedback is configured (see Settings), a bounced or spam-marked email shows an Undelivered warning against the players it covered.
When a player joined¶
Every player has a Registered date for the season — the day the club took them on.
Sending a player their registration email is what sets it. For anyone already at the club when you do the season's mailout, that is the start of the season; for a family who turns up in November and gets their email that week, it is November. Re-sending never changes it, so chasing a parent who hasn't replied leaves their original date alone.
That is the difference this date exists to record. A player who joined in November pays monthly subs by Direct Debit only for the months that are left, so their plan is smaller than everyone else's — and without a registration date there is nothing to say whether a small plan set up in November belongs to a family who joined in November or to one who has been here since August and only just got round to paying.
- Anyone registered after the season's start date is tagged Joined in-season, and the counts above the table include a running total.
- The Joined filter narrows the table to the in-season joiners, to those who were here from the start, or to anyone with no date recorded.
- The date is editable in the table — type over it and it saves straight away. Use that for a family taken on over the phone, a mailout that went out a week after they actually joined, or any date that needs correcting. Clearing it leaves the player with no date recorded.
- The same date appears under a player's name on Payments → Payments whenever you filter that list to a season, which is where the question usually gets asked, and in the Registered column of a squad's own roster, so a team secretary can see who joined part way through without the Seasons screen they can't open.
Players who were already on file when this was added are dated from the start of their season, so a later date always means someone genuinely joined part way through.
The five statuses¶
| Status | Meaning |
|---|---|
| None | No answer yet |
| Parent approved | The parent confirmed through their link |
| Admin approved | Someone recorded the confirmation on the parent's behalf |
| Parent declined | The parent said no through their link |
| Admin declined | Someone recorded the decline on the parent's behalf |
You can set any status yourself from the season page — useful when a parent replies by text or in person.