v0.18.1 - 2026-06-19
π * New Feature - Layout Builder v2 for club (team) pages - rebuild the club page from drag-and-drop blocks (team header, season record, standings, results, schedule, roster, player stats, rankings, scorelines, and the form trends matrix). Each block has its own season and competition filter pills that refetch in place without reloading the page, and pages ship a richer default SEO title and description plus new dynamic variables (club abbreviation, founded year, address, website domain)
π’ * Add - The Season Record block on the club (team) layout now combines the win% / W-D-L summary with a full stats table - goals, conceded, goal difference, clean sheets, cards, corners, fouls, offsides, shots, plus any custom match stats you track. Pick and reorder which stats to show, and the block's season + competition filters drive both the summary and the table.
π’ * Add - The Player Stats block on the club (team) layout is now a sortable stats table (with frozen Player column and paging) plus a separate goalkeeper table - pick and reorder the columns, add any custom match stats you track, and player rating shows as a colored pill
π’ * Add - Per-match averages in the Stats::Players::Custom shortcode - append ":avg" (average per game) or ":avg_90" (average per 90 minutes) to any column, e.g. columns="19:avg,22:avg_90,goals". Works with simple, calculated, formula, and core stats; totals stay the default
π’ * Add - The "Color background" stat option now also colors values in the Player Stats Panel and Stat::Players shortcodes (including the "Show full list" popup). The classic Player rating display keeps its current colors
π’ * Add - Club Form Trends shortcode - an aligned last-N matrix with W/D/L match dots and selectable rows (scored, clean sheet, conceded 2+, over 1.5/2.5/3.5, both teams scored, won to nil, leading at HT, comeback). ET matches count the 90-minute score for goal rows; halftime rows hide when no HT data exists. Optional competition scope
π’ * Update - Unified W/D/L form badge styling across standings, match lists, and club stats - soft colored backgrounds with colored letters instead of solid blocks (the match scoreboard keeps solid colors for contrast). Customizer color overrides still apply
π * Fix - Formula stats no longer show blank values in Stat::Players and Stats::Players::Custom shortcodes when a referenced stat has no tracked data or a division hits zero - those rows now count as 0
π * Fix - The Stat::Players "Show full list" popup now respects the stat column's configured decimal places, matching the shortcode display
π * Fix - Formula stats that reference a multi-part stat (like All Cards or a calculated sum) now apply operators to the whole referenced value instead of only its last component - previously a formula like "All Cards x 2" doubled only the red cards
π’ * Add - Public REST API - assign match officials (referee, assistants, fourth official) when saving a match through /matches/{id}/save; the match read endpoint now returns these fields too
π * Fix - Public REST API - the away team captain and both coaches now save when posting to /matches/{id}/lineups (captain_away and coach_home/coach_away were silently ignored)
π * Fix - Public REST API - club captains can now set their own team's captain through the full match save endpoint
π‘ * Performance - Faster API imports for predictions, odds, lineups, and live scores by no longer pausing to retry when the API returns an empty "no data" response
π‘ * Performance - Faster scheduled kickoff sync from API-Football - kickoff, stadium, and referee changes now save in a single update per match instead of up to three
π * Fix - Coach and stadium photos no longer duplicate on repeated API imports when an image optimizer plugin (Elementor Image Optimizer, WebP/CDN URL rewriters) blocks the uploaded file URL
π * Fix - Live match substitutions no longer show the player coming on and the player going off swapped for API-imported live matches in some competitions (live now matches the finished match)
π * Fix - Single live match pages no longer reload in an infinite loop on sites with full-page edge caching (Cloudflare, Varnish) - when a reload keeps returning a stale cached page, the live or finished layout is now refreshed in place via the REST API instead
π * Fix - Accessibility improvements for public output - better screen reader, accessibility-tree, and color-contrast support
Layout Builder v2
π’ * Add - The Season Record block on the club (team) layout now combines the win% / W-D-L summary with a full stats table - goals, conceded, goal difference, clean sheets, cards, corners, fouls, offsides, shots, plus any custom match stats you track. Pick and reorder which stats to show, and the block's season + competition filters drive both the summary and the table.
π’ * Add - The Player Stats block on the club (team) layout is now a sortable stats table (with frozen Player column and paging) plus a separate goalkeeper table - pick and reorder the columns, add any custom match stats you track, and player rating shows as a colored pill
π’ * Add - Per-match averages in the Stats::Players::Custom shortcode - append ":avg" (average per game) or ":avg_90" (average per 90 minutes) to any column, e.g. columns="19:avg,22:avg_90,goals". Works with simple, calculated, formula, and core stats; totals stay the default
π’ * Add - The "Color background" stat option now also colors values in the Player Stats Panel and Stat::Players shortcodes (including the "Show full list" popup). The classic Player rating display keeps its current colors
π’ * Add - Club Form Trends shortcode - an aligned last-N matrix with W/D/L match dots and selectable rows (scored, clean sheet, conceded 2+, over 1.5/2.5/3.5, both teams scored, won to nil, leading at HT, comeback). ET matches count the 90-minute score for goal rows; halftime rows hide when no HT data exists. Optional competition scope
π’ * Update - Unified W/D/L form badge styling across standings, match lists, and club stats - soft colored backgrounds with colored letters instead of solid blocks (the match scoreboard keeps solid colors for contrast). Customizer color overrides still apply
π * Fix - Formula stats no longer show blank values in Stat::Players and Stats::Players::Custom shortcodes when a referenced stat has no tracked data or a division hits zero - those rows now count as 0
π * Fix - The Stat::Players "Show full list" popup now respects the stat column's configured decimal places, matching the shortcode display
π * Fix - Formula stats that reference a multi-part stat (like All Cards or a calculated sum) now apply operators to the whole referenced value instead of only its last component - previously a formula like "All Cards x 2" doubled only the red cards
π’ * Add - Public REST API - assign match officials (referee, assistants, fourth official) when saving a match through /matches/{id}/save; the match read endpoint now returns these fields too
π * Fix - Public REST API - the away team captain and both coaches now save when posting to /matches/{id}/lineups (captain_away and coach_home/coach_away were silently ignored)
π * Fix - Public REST API - club captains can now set their own team's captain through the full match save endpoint
π‘ * Performance - Faster API imports for predictions, odds, lineups, and live scores by no longer pausing to retry when the API returns an empty "no data" response
π‘ * Performance - Faster scheduled kickoff sync from API-Football - kickoff, stadium, and referee changes now save in a single update per match instead of up to three
π * Fix - Coach and stadium photos no longer duplicate on repeated API imports when an image optimizer plugin (Elementor Image Optimizer, WebP/CDN URL rewriters) blocks the uploaded file URL
π * Fix - Live match substitutions no longer show the player coming on and the player going off swapped for API-imported live matches in some competitions (live now matches the finished match)
π * Fix - Single live match pages no longer reload in an infinite loop on sites with full-page edge caching (Cloudflare, Varnish) - when a reload keeps returning a stale cached page, the live or finished layout is now refreshed in place via the REST API instead
π * Fix - Accessibility improvements for public output - better screen reader, accessibility-tree, and color-contrast support
Layout Builder v2



New Team page - Default Layout -Β Accessibility improvements


Season Record block






Customer support service by UserEcho
Hi Andrei, when I enter a prediction in the match via Alternative Prediction Text, it's stored in the database under prediction_advice_alt.
The API prediction is stored in prediction_advice. However, if this is empty and I use the alternative, the prediction isn't linked to %prediction_text%. As a result, the prediction appears in the match widget, but the match content shows "no prediction available". Can you somehow link this?
Hi Frank
Check it in v0.18.1. If the problem still exists, let me know.
--
Best Regards
Andrei S.
--
Best Regards
Andrei S.
I will release premium after core approve.
Hi Andrei, thanks for the update. I have a question: Can the following dynamic variables no longer be used:
%club_id%
%season_id%
? I inserted these using the shortcode, but they don't return any data except for the `-no_data_text-`.
Here's an example code I used in the old club layout:
[anwpfl-matches competition_id="" show_secondary="0" season_id="%season_id%" league_id="" group_id="" type="fixture" limit="1" date_from="" date_to="" stadium_id="" filter_by_clubs="%club_id%" home_club="" away_club="" filter_by_matchweeks="" days_offset="2" days_offset_to="" sort_by_date="asc" sort_by_matchweek="" group_by="" group_by_header_style="" show_club_logos="1" show_match_datetime="1" competition_logo="1" include_ids="" exclude_ids="" outcome_id="" no_data_text="" layout="" show_load_more="0"]
Hello Frank
%season_id% - no, it does not make sense anymore. The new Team page works completely differently and handles the season on its own. But if you have an idea where the season could still be useful, let me know.
%club_id% - already fixed on my side, it will be available in the next version. If you need it working right now, open a support ticket and I will send you the few lines to change.
--
Best Regards
Andrei S.
hi, how to display subteams on team pages?
Hello
The new Team layout doesn't show subteams yet.
I'm already working on adding it.
For now, if you want the subteam switcher back, just deactivate your "Team" layout in the Layout Builder.
The pages will fall back to the classic design, which shows subteams automatically (once they're set in the club's "Subteams" tab).
--
Best Regards
Andrei S.
Hallo Andrei
Wenn ich das neue Layout verwende: Wie kann ich es an mein Design anpassen und in meine Sprache ΓΌbersetzen? Wo mΓΌsste ich dafΓΌr suchen?