WordPress plugin intelligence profile

Swim Club Manager

Member management, training attendance, groups, schedules, competition calendar, club equipment catalog, and competition results for swimming clubs.

WP PlugIndex snapshot

Current directory snapshot

Tested up to WordPress 7.1
Current version1.2.0
WordPress coverageTested up to WordPress 7.1
Minimum stackWP 6.4 · PHP 8.1
Directory statusactive
Last directory update26 Aug 20262mo ago
Active installationsNewAdoption metric — not a quality score
WordPress.org ratingNo WordPress.org ratings yet
Official packageDirect from WordPress.org

Repository metrics are context, not quality scores. Active installations measure adoption and can strongly reflect a plugin’s age and historical popularity. Ratings, recent updates and “Tested up to” metadata also do not guarantee modern code, error-free operation, security, feature completeness or suitability for a particular site. Why active installs don’t tell the whole story →

WP PlugIndex currently records Swim Club Manager version 1.2.0 as active, updated 2mo ago and tested up to WordPress 7.1.

Overview

About this plugin

Swim Club Manager is a WordPress plugin for managing all aspects of a swimming club:

  • Members — full profiles (personal info, club details, membership fees, equipment orders, competition entries, results) organized into tabs on a single edit screen
  • Attendance — per-session log with present / absent / excused status
  • Groups & Schedules — training groups with weekly schedule management
  • Competition Calendar — upcoming meets with participant tracking
  • Competition Entries & Results — log which disciplines a member is entered in per meet (including relay leg/stroke and pool length), and see their personal-best times automatically summarized in a year-by-year, pool-length results matrix
  • Club Equipment Catalog — club gear with stock and pricing info

All data is managed through the WordPress admin. Shortcodes are available for frontend display — see Shortcodes below, or the full list with a copy-paste-ready syntax on the plugin’s Dashboard page in wp-admin.

Shortcodes

  • [swimclma_groups_schedule program="competitive" season="2025-26"] — training groups & weekly schedule (both attributes optional)
  • [swimclma_competition_calendar season="2025-26"] — upcoming competitions for a season
  • [swimclma_equipment_catalog in_stock="1"] — club equipment catalog with an “order via email” form
  • [swimclma_member_list program="competitive"] — member list (visible to logged-in staff only)
  • [swimclma_attendance_stats member_id="123"] — one member’s attendance rate
  • [swimclma_member_results member_id="123"] — one member’s personal-best times, grouped by pool length, year and discipline

Developer Notes

Autoloading

php.

json maps the `SwimClub` namespace to three base directories:

  • SwimClub\ → includes/
  • SwimClub\Admin\ → admin/
  • SwimClub\Public\ → public/

Sub-namespaces map to subdirectories one-to-one, and the filename must match the class name exactly (PSR-4):

  • SwimClub\PostTypes\Member → includes/PostTypes/Member.php
  • SwimClub\Taxonomies\Age_Category → includes/Taxonomies/Age_Category.php
  • SwimClub\DB\EquipmentOrders → includes/DB/EquipmentOrders.php

-

php

php ( SwimClub\Plugin, the bootstrap singleton returned by swim_club_manager() ) wires up admin/public hooks, post types, taxonomies, shortcodes, and REST routes — each referenced class is autoloaded lazily when first instantiated, not eagerly required.

Admin controllers

php only handles enqueueing, menu registration, page-partial rendering, and meta boxes. Form/CRUD handling (the `admin_post_swimclma_*` actions) lives one-per-domain under `admin/Controllers/` (`SwimClub\Admin\Controllers\`) — `MemberController`, `GroupController`, `AttendanceController`, `CompetitionController`, `EquipmentController`, `EquipmentOrderController`, `MembershipFeeController`, `CompetitionEntryController`, `SettingsController`.

Each exposes `save()` / `delete()` (and `update_status()` where relevant) and is wired directly to its `admin_post_*` hook in `Plugin::define_admin_hooks()`. They all extend the abstract `Controller` base class, which provides the shared nonce/capability guard helpers (`verify_nonce_or_die()`, `verify_request_nonce_or_die()`, `require_cap_or_die()`).

Working with the code

  • After pulling changes that add/rename/move a class, run composer dump-autoload -o to regenerate the optimized classmap in vendor/.
  • vendor/ is committed and ships with the plugin — WordPress installs don’t run a Composer build step, so it must be present in the deployed copy.
  • Non-class files (admin partials, public partials, JS/CSS) are include d directly by the components that render them and are unaffected by autoloading.
  • Public-facing shortcode styles are written as Sass ( public/scss/ ) — one BEM component per shortcode under public/scss/components/, shared tokens/mixins under public/scss/abstracts/, compiled to public/css/public.css via npm install && npm run build:css (or npm run watch:css while editing). Like vendor/, public/css/public.css is committed and ships with the plugin — regenerate it after any.scss change, since WordPress installs don’t run this build step either. It’s enqueued by SwimClub\Public\PublicAssets::enqueue_styles() (wired in Plugin::define_public_hooks() ), which only loads it on pages whose content contains one of the plugin’s shortcodes.
  • includes/Activator.php and includes/Deactivator.php are autoloaded like everything else; they don’t need to be required manually before plugins_loaded since register_activation_hook() / register_deactivation_hook() only invoke their callback once WordPress actually fires the (de)activation event, by which point the autoloader is already registered.
WordPress.org metadata

Plugin tags

Topics listed for this plugin in the WordPress.org directory.

  • attendance
  • club
  • members
  • sports
  • swimming
Compatibility & maintenance

Compatibility & maintenance

Tested with WP 7.1

Marked as tested with the current WordPress 7.1 release.

Current WordPress releaseWordPress 7.1
WordPress.org Tested up to7.1
Minimum requirementsWordPress 6.4 · PHP 8.1
Update activity26 Aug 20262mo ago

“Tested up to” is directory metadata supplied by the plugin author. WP PlugIndex does not turn an older declaration into a claim that the plugin is incompatible.

Changes recorded by WP PlugIndex

Recent tracked changes

No tracked version or compatibility changes have been recorded by WP PlugIndex yet.

Tracking & source

WP PlugIndex tracks public WordPress.org directory metadata and records selected version, compatibility and availability changes as they are detected.

Plugin watchlist

Watch this plugin

Sign in to your WP PlugIndex account or create a free account. Free accounts can watch up to 5 plugins and see what changed.

Watch limit

Watchlist limit reached

You have reached your current active watch limit.