Skip to content

Developer reference

For anyone putting the plugin on a page, extending it from another plugin, or driving it from a shell. Everything here is public surface — the shortcodes, hooks and commands the plugin means for you to use — as opposed to its internals, which move without warning.

  • Shortcodes


    The three public forms, plus the four English FA ones, with every attribute they accept.

  • Hooks and filters


    Adding to the Overview screen, reacting to a confirmed registration or a cleared payment, and the settings that are filterable rather than configurable.

  • WP-CLI commands


    wp cpm squad for scripted squad setup, and wp cpm generate for demo data on a staging site.

  • Admin UI conventions


    The rules every admin screen in the family follows. Required reading before writing a template that has to look like it belongs.

  • The platform layer


    What the core plugin offers a companion plugin, how to depend on it safely, and the version contract between them.

Two things worth knowing first

The cpm_ prefix is the whole namespace. Hooks, capabilities, tables, options and CSS classes all carry it. A hook without it is not this plugin's.

Two capabilities gate everything. cpm_access means "can reach the plugin at all" — a team secretary has it. cpm_manage_all means "club admin". Check those rather than manage_options if you are adding a screen that should follow the plugin's own access rules, and note the one deliberate exception: Club Mailer's settings screen stays on manage_options, because it stores OAuth client secrets capable of sending mail as any member.