Description
Blyzer.net is a platform for organising sports and e-sports tournaments, leagues and races – registrations, schedule, results, tables and statistics in one place.
Blyzer Events connects your WordPress site to your Blyzer.net events. Add an event, paste its API key and place the “Blyzer event” block, the Elementor widget or a shortcode anywhere on your site. Results update automatically as the organiser enters them on Blyzer.net – while the event is in progress even without reloading the page.
Features
- Easy to set up – a 3-step guide, a connection check right after you paste the key and a preview of the whole event
- “Blyzer event” block for the block editor and a “Blyzer event” widget for Elementor – choose the event and what to show, no shortcodes needed
- Live updates – while the event is in progress the results on the page refresh by themselves (every 60 seconds by default), only when the browser tab is visible
- Countdown to the start of the event and a “Register a team” button while registration is open
- Event info – logo, name, sport, status with a LIVE indicator, dates, venue and counts
- Whole event on one page with tabs – shows only the sections that have data
- Groups – standings tables like on Blyzer.net (played, wins, draws, losses, overtime results, score, goal difference, points, form)
- Playoff – a real bracket with connecting lines, highlighted winners, byes and teams not yet known; double elimination (winners, losers, grand final) and additional playoff are shown separately
- Matches – schedule and results grouped by round, group, playoff round or day, with live score, final and upcoming states
- Teams – a grid of team cards with logos (or initials when there is no logo)
- Players – statistics with the columns your event uses (goals, assists, cards …)
- Races – stage results and overall standings including DNS / DNF / DSQ
- Always looks like Blyzer.net – Blyzer colours, hexagon crests and the Rajdhani font bundled with the plugin (no requests to Google); dark by default, light or automatic on request
- Sends your visitors to Blyzer.net for more – the next and last matches with a “Full schedule on Blyzer.net” button, top 10 players with “All statistics on Blyzer.net”, every match, team and the event link to its page on Blyzer.net (opens in a new tab)
- Optional small “Results from Blyzer.net” logo under each widget (off by default)
- Works in any theme – styles are isolated, tables scroll on phones with a sticky team column, no jQuery
- Fast and robust – data is cached; when Blyzer.net is not reachable the last loaded data is shown and the site does not slow down
- Your own HTML templates – globally or per event – with a simple
{{placeholder}}syntax - Translation ready (Slovak translation included)
Shortcodes
Replace 123 with the ID of the event (shown in the “Available shortcodes” box when editing the event).
[blyzer_tournament id="123"]– the whole event with tabs[blyzer_event id="123"]– event info[blyzer_groups id="123"][blyzer_playoff_rounds id="123"][blyzer_matches id="123"][blyzer_teams id="123"][blyzer_players id="123"][blyzer_race_stages id="123"][blyzer_race_standings id="123"]
Optional attributes:
theme="dark",theme="light"ortheme="auto"– colour scheme (all shortcodes, default from the settings, dark unless changed)limit="10"– show only the first N items;blyzer_playersshows the top 10 by default,limit="0"shows all playersupcoming="3"andrecent="3"–blyzer_matchesshows all live matches, the next 3 and the last 3 by default;upcoming="all"(orlimit, orstatus) shows the full schedule as beforegroup="A"– only the given group (blyzer_matches,blyzer_groups)status="played",status="upcoming"orstatus="live"– filter matches (blyzer_matches)phase="groups",phase="playoff"orphase="friendly"– filter matches by phase (blyzer_matches)team="45"– only matches or players of the team with this Blyzer ID (blyzer_matches,blyzer_players)group_by="round","group","day"or"none"– how matches are grouped; by default a league is grouped by round and a tournament by group and playoff round (blyzer_matches)order="desc"– newest matches first (blyzer_matches)form="yes|no",extra="yes|no",diff="yes|no"– show or hide the form, overtime and goal difference columns; by default they are shown when the data has them (blyzer_groups)extend="0"orextend="1"– only the main or only the additional groups / playoff (blyzer_groups,blyzer_playoff_rounds)sort="sum",sort="name"or the label of a statistic, e.g.sort="g"– order players (blyzer_players)sections="groups,playoff,matches"– which tabs to show (blyzer_tournament; alsoextra,teams,players,standings,stages)header="no"– hide the event info above the tabs (blyzer_tournament)live="no"– do not refresh this shortcode automatically while the event is in progress (all shortcodes)apply="no"– hide the “Register a team” button (blyzer_event,blyzer_tournament)
Block and Elementor widget
In the block editor add the “Blyzer event” block, in Elementor the “Blyzer event” widget. Choose the event (✓ means the connection works, ⚠ means the API key needs checking), what to show and optional settings. They show exactly the same as the shortcodes.
Live updates
When an event is in progress (Blyzer.net marks it as live, or a match is live), the results on the page refresh automatically. The page asks your own WordPress site for the new results, never Blyzer.net directly, and only while the browser tab is visible. The interval (60 seconds by default, at least 30) and turning it off for the whole site are in Blyzer Events Settings; a single shortcode can turn it off with live="no".
Examples – top 10 scorers: [blyzer_players id="123" sort="g" limit="10"], next five matches: [blyzer_matches id="123" status="upcoming" limit="5" group_by="none"]
Templates
Every shortcode (except blyzer_tournament) uses a built-in template unless you set your own in Blyzer Events Settings Templates, or for a single event in the event editor.
{{title}}– prints a value (HTML is escaped){{totalStatistics.g}}– prints a nested value{{#items}} … {{/items}}– repeats the block for every item; for non-list values shows the block when the value is not empty{{^items}} … {{/items}}– shows the block when the value is empty{{@index}}– order of the item in a list, starting at 1{{count}}– number of items
Besides the fields from Blyzer.net the plugin adds ready-made fields, so templates need no logic – for example statusLabel, isLive, isWinnerHome, home.name, initials, playedAtDate, diffLabel or formItems. The full list for each shortcode is shown next to the template editor.
Styling
The widgets always use the Blyzer.net look (colours, hexagons, the Rajdhani font). Developers can still adjust details with CSS custom properties on .blyzer-events, for example --blyzer-surface, --blyzer-text, --blyzer-border, --blyzer-radius or --blyzer-font. All built-in elements use classes starting with bze-.
External services
This plugin connects to the Blyzer.net API to load the data of your events. Without it the plugin cannot display anything.
- Service: Blyzer.net API, operated by the Blyzer.net platform. Endpoints:
https://www.blyzer.net/api/event/all(all data of the event in one request, used first). When it is not available (HTTP 404), the plugin remembers that for a day and uses up to eight requests instead:https://www.blyzer.net/api/event,/api/event/teams,/api/event/groups,/api/event/playoff-rounds,/api/event/matches,/api/event/players,/api/event/race-stagesand/api/event/race-standings. - What is sent: the API key of the event you entered in the event editor, in the
X-Auth-TokenHTTP header, and the standard technical headers of an HTTP request. The User-Agent isBlyzerEvents/<version>; WordPress– it does not contain the address of your site. As with any internet request, Blyzer.net sees the IP address of your web server. No data about your site visitors is sent. The key is never shown on your site, in the block or in any response of your site. - When: from your server, when a page with a Blyzer block, widget or shortcode is displayed (or refreshed during a live event) and the cached data has expired – at most one request per event per cache period, no matter how many visitors there are. With the cache duration set to 0 a request is made on every page view (live updates still use at least a 10-second cache). Also when an event is saved or opened in the editor (connection check) and when you click “Verify API” in the list of events. When Blyzer.net asks the plugin to slow down (HTTP 429 with Retry-After) no requests are sent for that time.
- Terms of service: https://www.blyzer.net/sk/obchodne-podmienky
- Privacy policy: https://www.blyzer.net/sk/ochrana-osobnych-udajov
Stream links from the API are shown only when they point to YouTube, Twitch or Facebook (https). All other links point only to www.blyzer.net, blyzer.net or cdn.www.blyzer.net.
The Rajdhani font and the Blyzer.net logo are bundled with the plugin and loaded from your own site – no request goes to Google Fonts or to Blyzer.net for them.
Images (event and team logos, player photos, flags, sport icons) returned by the API are loaded by the visitor’s browser directly from Blyzer.net servers (https://cdn.www.blyzer.net and other blyzer.net subdomains), so the visitor’s IP address and browser information reach those servers. Only HTTPS addresses on blyzer.net and its subdomains are used. Live updates are loaded by the visitor’s browser from your own site (/wp-json/blyzer-events/v1/render), not from Blyzer.net.
Credits
- Rajdhani font by Indian Type Foundry, licensed under the SIL Open Font License 1.1 (
assets/fonts/OFL.txt). Bundled as a Latin subset in WOFF2. - Blyzer.net logo and name are trademarks of Blyzer.net, the author of this plugin.
Screenshots








Blocks
This plugin provides 1 block.
- Blyzer event Results, standings, playoff and matches of your Blyzer.net event.
Installation
- Install and activate the plugin from Plugins Add New, or upload the
blyzer-eventsfolder to/wp-content/plugins/. - On Blyzer.net open your event Detailed settings API keys “+” and copy the key.
- In WordPress go to Blyzer Events Add New, paste the key and publish (the name is filled in from Blyzer.net when you leave it empty). The editor shows whether the connection works and offers a preview.
- Add the “Blyzer event” block (or the Elementor widget) to any page and choose the event – or copy a shortcode from the “Available shortcodes” box.
FAQ
-
Where do I find the API key?
-
On Blyzer.net open your event Detailed settings API keys “+”. You need to be the organiser of the event.
-
The shortcode shows nothing / “No data yet.”
-
Check the “API status” column in Blyzer Events. 200 means the key works, any other code means Blyzer.net did not accept the request. The column shows the last known result; click “Verify API” to check it again. Make sure the event in WordPress is published – unpublished events show the message from the settings instead.
-
How often is the data refreshed?
-
By default every 300 seconds. You can change it in Blyzer Events Settings. 0 disables caching (not recommended on busy sites). Saving an event clears its cache immediately.
-
Can I change how it looks?
-
The widgets are meant to look like Blyzer.net, so the colours and the font are fixed. You can choose the dark (default), light or automatic colour scheme in Blyzer Events Settings or per shortcode, developers can override the CSS custom properties (see Styling), and you can write your own HTML templates. Custom templates made for version 1.4 keep working and keep their look; the accent colour setting was removed in 1.6.0.
-
Why do the widgets link to Blyzer.net?
-
The plugin is a window to your event, Blyzer.net is the place with everything else. Matches show the nearest and latest ones and players the top 10, with buttons to the full schedule and statistics on Blyzer.net. Every link is part of the content (the event, a match, a team or a player) and opens in a new tab. The “Results from Blyzer.net” logo is optional and off by default – you can turn it on in Blyzer Events Settings.
-
What happens when Blyzer.net is down?
-
The plugin waits at most 8 seconds once, then shows the last successfully loaded data and does not try again for a minute, so your pages stay fast. When Blyzer.net answers “too many requests”, the plugin waits as long as Blyzer.net asks (at most 10 minutes) and shows the last loaded data meanwhile. Live updates on open pages simply wait longer and try again.
-
How do live updates work and do they slow down my site?
-
Only widgets of an event that is in progress refresh, every 60 seconds by default plus a small random delay, and only while the browser tab is visible. The browser asks your site, which answers from a short cache, so even many visitors cause at most one request to Blyzer.net per event per cache period. Refresh requests that would need new data from Blyzer.net are limited to 60 per minute per IP address (IPv6 per /64 network); answers from the cache are not limited (with a persistent object cache, up to 600 per minute). You can change the interval or turn live updates off in Blyzer Events Settings, or for one shortcode with
live="no". -
My site is behind Cloudflare or another proxy / CDN
-
The plugin takes the visitor’s IP address only from
REMOTE_ADDR, because other headers can be faked. Behind a CDN or reverse proxy all visitors may share the proxy’s address and share the limit. If your server knows the real address, return it with theblyzer_events_client_ipfilter, for example:add_filter( 'blyzer_events_client_ip', function ( $ip ) { return $_SERVER['HTTP_CF_CONNECTING_IP'] ?? $ip; } );Only do this when the proxy always sets the header, otherwise visitors could fake it. The limits can be changed with the
blyzer_events_rest_rate_limitandblyzer_events_rest_rate_limit_cachedfilters. -
Does it work with caching plugins?
-
Yes. Pages can be cached as usual; live updates are loaded through the WordPress REST API, which page caches do not store. If a security plugin blocks the REST API for visitors, live updates are silently skipped and the page still shows the results from the time it was loaded.
-
What happens to my data when I delete the plugin?
-
Events and settings are deleted, unless you tick “Keep data on uninstall” in the settings. Deactivating the plugin never deletes anything.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Blyzer Events” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Blyzer Events” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.6.0
- New: always looks like Blyzer.net – Blyzer colours, hexagon crests and the bundled Rajdhani font; dark colour scheme by default. The accent colour setting was removed.
- New: matches show live matches, the next 3 and the last 3 with a “Full schedule on Blyzer.net” button (
upcoming,recent;upcoming="all"for everything); players show the top 10 with “All statistics on Blyzer.net”; every match row, team and player links to Blyzer.net in a new tab; “Watch live” label on live matches; “Follow on Blyzer.net” button in the event header. - New: optional “Results from Blyzer.net” logo under each widget (off by default, Settings or the setup guide).
- New: stream links to YouTube, Twitch and Facebook are allowed.
- New: “Blyzer event” block for the block editor with a live preview, and a “Blyzer event” widget for Elementor (only loaded when Elementor is active).
- New: live updates – while an event is in progress the results refresh without reloading the page, only when the tab is visible, with a random delay and a longer pause after errors; the active tab and scroll position are kept. Setting for the interval (default 60 s, minimum 30 s) and to turn it off, shortcode attribute
live="no". - New: countdown to the start of the event and a “Register a team” button while registration is open (
apply="no"hides it). - New: a 3-step guide for new users, a connection check with a clear message right after the key is saved, a preview of the whole event, and the event name is filled in from Blyzer.net.
- Improved: all data of an event is loaded with one request (
/api/event/all) and shared by all widgets on the page; falls back to the separate endpoints when it is not available. - Improved: when Blyzer.net answers HTTP 429 the plugin respects Retry-After (at most 10 minutes) and shows the last loaded data; only one request per event is made at a time.
- Security: the live update endpoint is read-only, validates every parameter against an allow-list, returns only what the public shortcode shows, caches the result in memory (not in the database) and limits requests that need new data per IP address.
- Security: events use their own capabilities (
edit_blyzer_events…), given to administrators on activation and update; filterblyzer_events_capability_roles. - Security: links from Blyzer.net data may point only to www.blyzer.net, blyzer.net and cdn.www.blyzer.net; requests do not send the site address in the User-Agent and refuse compressed responses.
- Improved: uninstalling removes events in every status, all cached data and the capabilities.
- Requires WordPress 6.3 or newer.
1.5.0
- New: completely redesigned built-in templates in the Blyzer.net style – light, dark and automatic colour scheme (
themeattribute and setting), accent colour setting. - New:
[blyzer_tournament]– the whole event with tabs, shows only sections with data; works without JavaScript. - New:
[blyzer_event]– event info with logo, sport, status, LIVE indicator, dates, venue and counts. - New:
[blyzer_race_stages]and[blyzer_race_standings]for races, including DNS / DNF / DSQ. - New: playoff bracket with connecting lines, winners, byes, double elimination and additional playoff; swipeable rounds on phones.
- New: matches grouped by round, group or day (
group_by), live / final / upcoming state, new filtersphase,team,order,status="live". - New: standings with played, overtime, goal difference and form columns (
form,extra,diff), sticky team column on phones. - New: player statistics columns follow the statistics of the event.
- New: many ready-made template fields (
statusLabel,isWinnerHome,home.name,initials…); dates use the site time zone and formats. - Improved: when Blyzer.net is not reachable the last loaded data is shown, errors are remembered for 60 seconds and requests time out after 8 seconds.
- Improved: the list of events no longer contacts Blyzer.net; API status is updated when data is loaded or when you click “Verify API”.
- Security: only HTTPS images and links from blyzer.net are used, built-in templates use a strict HTML allow-list, the API key field is hidden and validated, shortcode attributes are validated, responses are limited to 5 MB.
- Styles are isolated from the theme; styles and scripts load only on pages with a shortcode.
1.4.0
- New: built-in templates for all shortcodes, so they work without writing any HTML.
- New: shortcode attributes
limit,group,statusandsort. - New: templates support nested values (
{{totalStatistics.g}}), empty blocks ({{^items}}) and{{@index}}. - New: formatted match date and time (
{{playedAtDate}},{{playedAtTime}}) using the site date and time format. - New: Settings link on the Plugins screen.
- Fix: a fatal error when data was loaded from the cache.
- Fix: deactivating the plugin no longer deletes events and settings.
- Fix: a fatal error when deleting the plugin.
- Fix: saving one settings tab no longer erases the other.
- Fix: bulk editing events no longer resets custom templates.
- Fix: PHP warning when the API returned no data.
- Security: API requests use HTTPS, templates and settings are sanitized, all output is escaped, nonce and capability checks on save.
- Plugin is now in English with a Slovak translation.
1.3.0
- First version.
