v0.18.0 - RC1 - testing in progress

🚀 v0.18.0 - RC1 is ready for public testing. 
After a week of testing on demo sites, v0.18.0 is ready for wider testing. If you'd like to help, open a support ticket and I'll send the install archives.
Big thanks to everyone who joins in.


🟡 * Performance - Clubs, Competitions, Standings, and Squads moved from postmeta to dedicated database tables for faster page loads and better long-term maintainability
🚀 * New Feature - Active Roster - clubs now have ONE current squad you can edit without picking a season. Historical seasons live in a separate Season Squad Archive (append, replace, or clear past rosters from the same screen). [anwpfl-squad] without `season_id` renders the active roster; with `season_id` renders that season's archive
🚀 * New Feature - Site Migration (Settings & Tools > Site Migration) - copy a competition (matches, standings, clubs, players, staff, lineups, stats, squads, transfers) from one WordPress site to another over a donor / recipient REST connection with Application Password auth
🚀 * New Feature - Player Merge Tool (FL API Import > Toolkit) - detect duplicate players via slug or DOB, preview impact on stats and lineups, merge duplicates, and clean up orphaned player records
🚀 * New Feature - Public REST API - opt-in via Settings & Tools > API. Includes anonymous live match polling (score, clock, events, lineups), public read endpoints for competitions / clubs / players / taxonomies, and authenticated endpoints for third-party apps to manage matches, lineups, and statistics.
🟠 * Fix - Fatal error on club pages when third-party menu plugins pass string post ID (AnWP Mega Menu)
🟠 * Fix - "Remove Player Photo Duplicates" tool now skips files that can't be processed and continues, instead of stopping the entire batch
🟢 * Add - Calculated and formula stats now supported in Stats::Players Custom shortcode
🟢 * Add - "Formula" column type for team stats in the Stats Configurator (multi-operand expressions over team stat columns, with the same safety guards as player formula stats)
🟠 * Fix - Formula and calculated stats not working in Stat::Players shortcode
🟢 * Improve - Formula builder UX: click-to-add tokens (drag still works), grouped element categories (Operators / Digits / Stats), and explicit Save/Cancel buttons replacing auto-save-on-close
🟢 * Add - Calculated and formula stat columns can now be used as the match formation / lineups rating pill (Configurator > Match Lineups)
🟢 * Add - "Color background" flag in the Stats Configurator - any match stat column can be highlighted with a red-to-green pill on the match formation, lineups, match player stats table, player profile, and `[anwpfl-stats-players-custom]` Tabulator shortcode (configurable value range)
🟠 * Fix - Wrong sort order in standings using "away" or "fewer cards" ranking rules when matches reference clubs removed from the group
🟠 * Fix - "Missing Players" section no longer shows each injured player twice (existing duplicates are cleaned up automatically on update)
🟠 * Fix - "Automatically Suspend Players" toggle now works on manually-created competitions even when API Import is configured for other competitions
🟠 * Fix - Stat::Clubs shortcode showing incorrect card totals
🟠 * Fix - Referee stats cache never being saved
🟠 * Fix - Stats shortcodes no longer crash the site when used without scope filters
🟠 * Fix - Cache flush no longer wipes other plugins' data on sites with Redis or Memcached
🟠 * Fix - Suspension risk shortcode now properly cached on sites with object cache
🟠 * Fix - Shortcode spacing, display, and text alignment utilities now reliably override theme styles (notably Kadence's `.entry-content` rules)
🟠 * Fix - Clean sheets counted for all positions instead of goalkeepers only
🟠 * Fix - Match event row now grows to fit long comment text instead of clipping and overlapping the next row
🟠 * Fix - "days_offset" and "days_offset_to" shortcode attributes now work in the [anwpfl-stats-players-custom] Tabulator layout (previously only worked in the default layout)
🟡 * Performance - API import configuration no longer autoloaded on every page request
🟢 * Add - Support for AWD (Technical Loss) and WO (WalkOver) fixture statuses in API-Football import
🟢 * Update - Transfer "Register in squad" no longer writes per-season - players added through the Transfer UI always go on the active roster; the `season_id` field in the REST payload is now ignored
🟢 * Add - Custom stats (xG, possession time, etc.) now available in Head-to-Head team stats shortcode
🟢 * Add - Template Status admin page (Settings & Tools > Template Status) - detects theme and third-party plugin template overrides, compares @version tags against plugin defaults, and flags patterns that need updating before the next database migration
🟢 * Add - ":avg" modifier on Player Stats Panel shortcode to show per-game average as the main value (e.g. stats="distance:avg")
🟢 * Add - "Who Will Win" probabilities from bookmaker odds with configurable bookmaker selection

New Tutorials
- Migrating 0.18.0
- Templates migration to v0.18.0
- Site Migration
- Public Rest API 

Image 11904

Image 11905

Clean-Up Old data (optional in 5-7 days)
Football Leagues > Settings & Tools > Toolbox > Cleanup

Image 11906

Active Squad

Image 11907

Live formula preview in the Stats Configurator

Image 11908

Calculated and formula stat columns can now be used as the match formation / lineups rating pill (Configurator > Match Lineups)

Image 11909

"Color background" flag in the Stats Configurator 

Image 11911

Image 11912



Image 11910

Site Migration

- https://anwp.pro/docs/football-leagues/pro-features/site-migration/

Image 11913

Public Rest API

- https://anwp.pro/docs/football-leagues/pro-features/rest-api/

Image 11914


Player Merge Tool (FL API Import > Toolkit)

Image 11915

"Who Will Win" probabilities from bookmaker odds

Image 11916

Image 11917

Image 11918

Image 11919

+1

This will be a major update. When can we expect the release of this version? I hope well before 2026 FIFA World Cup.