[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f7Q86pKlNb-frdcylzeHRdTuO6KiYQz5bzTLWJTWjOOs":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":21,"download_link":22,"security_score":23,"vuln_count":13,"unpatched_count":13,"last_vuln_date":24,"fetched_at":25,"vulnerabilities":26,"developer":27,"crawl_stats":24,"alternatives":32,"analysis":127,"fingerprints":372},"matches","Matches","0.5","nemrod","https:\u002F\u002Fprofiles.wordpress.org\u002Fnemrod\u002F","\u003Cp>This plugin makes it easy to administer and display matches (sports or otherwise) with a neat widget.\u003C\u002Fp>\n","This plugin makes it easy to administer and display matches (sports or otherwise) with a neat widget.",10,4238,0,"2012-01-26T09:35:00.000Z","3.2.1","3.0.1","",[19,4,20],"games","sports","http:\u002F\u002Fnemrod.se\u002Fwordpress\u002Fmatches-wordpress-plugin","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmatches.0.5.zip",85,null,"2026-03-15T15:16:48.613Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":28,"total_installs":11,"avg_security_score":23,"avg_patch_time_days":29,"trust_score":30,"computed_at":31},1,30,84,"2026-04-04T05:03:21.964Z",[33,55,76,94,109],{"slug":34,"name":35,"version":36,"author":37,"author_profile":38,"description":39,"short_description":40,"active_installs":41,"downloaded":42,"rating":43,"num_ratings":44,"last_updated":45,"tested_up_to":46,"requires_at_least":47,"requires_php":48,"tags":49,"homepage":53,"download_link":54,"security_score":43,"vuln_count":13,"unpatched_count":13,"last_vuln_date":24,"fetched_at":25},"cyberpress","CyberPress","2.5.7","nK","https:\u002F\u002Fprofiles.wordpress.org\u002Fnko\u002F","\u003Cp>Manage eSport teams, players, matches and tournaments. Included individual players and teams profiles. Pages with information about matches and tournaments.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Online Demo \u003Ca href=\"https:\u002F\u002Fgetcyberpress.com\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Fgetcyberpress.com\u002F\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Tournaments\u003C\u002Fli>\n\u003Cli>Matches\u003C\u002Fli>\n\u003Cli>Teams\u003C\u002Fli>\n\u003Cli>Players\u003C\u002Fli>\n\u003Cli>Games\u003C\u002Fli>\n\u003C\u002Ful>\n","Manage eSport Tournaments, Matches, Teams and Players.",200,16892,100,4,"2026-01-11T12:26:00.000Z","6.9.4","6.3","7.2",[50,19,4,51,52],"esports","teams","tournaments","https:\u002F\u002Fgetcyberpress.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcyberpress.2.5.7.zip",{"slug":56,"name":57,"version":58,"author":59,"author_profile":60,"description":61,"short_description":62,"active_installs":41,"downloaded":63,"rating":43,"num_ratings":64,"last_updated":65,"tested_up_to":66,"requires_at_least":67,"requires_php":68,"tags":69,"homepage":74,"download_link":75,"security_score":43,"vuln_count":13,"unpatched_count":13,"last_vuln_date":24,"fetched_at":25},"joomsport-achievements","Achievements sports league","1.7","beardev","https:\u002F\u002Fprofiles.wordpress.org\u002Fbeardev\u002F","\u003Cp>JoomSport Achievements is a flexible solution to build your sports league site for sports where many players compete with each other simultaneously in each attempt. Ideal plugin to organise a site dedicated to Olympic games, as it is suitable for most of the Olympic sports.\u003C\u002Fp>\n\u003Ch4>Main features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Robust but simple structure\u003C\u002Fstrong> with three main items: league, season and stage\u003C\u002Fli>\n\u003Cli>Hierarchical \u003Cstrong>Season\u003C\u002Fstrong> with season table filters and ranking based on stage categories\u003C\u002Fli>\n\u003Cli>Ranking by Points or selected Result field\u003C\u002Fli>\n\u003Cli>Categorized \u003Cstrong>stages\u003C\u002Fstrong> with ability to add results for each player \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Player profiles\u003C\u002Fstrong> with stage results, description and photo\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Responsive and professionally\u003C\u002Fstrong> designed pages based on bootstrap framework \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Extra fields\u003C\u002Fstrong> allows you to add more information on selected level\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Pro version available\u003C\u002Fh4>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fjoomsport.com\u002Fweb-shop\u002Fachievements-pro-plugin.html\" title=\"Achievements pro version\" rel=\"nofollow ugc\">Professional edition\u003C\u002Fa> includes 4 shortcodes:\u003Cbr \u002F>\n* Stages shortcode\u003Cbr \u002F>\n* Stages list shortcode\u003Cbr \u002F>\n* Standings shortcode\u003Cbr \u002F>\n* Player shortcode\u003C\u002Fp>\n\u003Ch4>Demo\u003C\u002Fh4>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwp-demo.joomsport.com\u002Fjsprt_achv_season\u002F2016-2017\u002F\" title=\"JoomSport Achievements demo\" rel=\"nofollow ugc\">Product demo available\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Sports potentially supported\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Motor sport racing\u003C\u002Fli>\n\u003Cli>Athletics (Running, Jumping)\u003C\u002Fli>\n\u003Cli>Aquatics (Swimming, Diving)\u003C\u002Fli>\n\u003Cli>Skiing (ski jumping, all types of snow skiing, snowboarding)\u003C\u002Fli>\n\u003Cli>Horse races\u003C\u002Fli>\n\u003Cli>Fishing\u003C\u002Fli>\n\u003Cli>Skating\u003C\u002Fli>\n\u003Cli>Biathlon\u003C\u002Fli>\n\u003Cli>Cycling \u003C\u002Fli>\n\u003Cli>Canoeing \u003C\u002Fli>\n\u003Cli>Bobsleigh \u003C\u002Fli>\n\u003Cli>Skateboarding\u003C\u002Fli>\n\u003Cli>Triathlon\u003C\u002Fli>\n\u003Cli>Pentathlon\u003C\u002Fli>\n\u003Cli>Weightlifting\u003C\u002Fli>\n\u003Cli>Surfing\u003C\u002Fli>\n\u003Cli>Shooting\u003C\u002Fli>\n\u003Cli>Archery\u003C\u002Fli>\n\u003Cli>Figure skating\u003C\u002Fli>\n\u003Cli>Golf (for single players)\u003C\u002Fli>\n\u003Cli>Bowling\u003C\u002Fli>\n\u003Cli>Air sports \u003C\u002Fli>\n\u003Cli>Dancing\u003C\u002Fli>\n\u003Cli>Poker \u003C\u002Fli>\n\u003Cli>any other sport where there is a match\u002Fgame between MANY participants in each attempt…\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Other products\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>The full product list by \u003Ca href=\"https:\u002F\u002Fbeardev.com\u002F\" title=\"Sports software development company\" rel=\"nofollow ugc\">BearDev sports software development company\u003C\u002Fa>=\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fjoomsport-sports-league-results-management\u002F\" title=\"WordPress Sports Plugin\" rel=\"ugc\">JoomSport\u003C\u002Fa> – solution for such sports as football, soccer, hockey, basketball, volleball etc. It is based on structure where TWO participants compete with each other in single match.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fjoomsport-prediction\" title=\"Sports prediction game plugin\" rel=\"ugc\">Sports prediction game plugin\u003C\u002Fa> – organise prediction game for your site fans.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Translations\u003C\u002Fh4>\n\u003Cp>Check translations available on \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Fjoomsport-achievements\" rel=\"nofollow ugc\">translation page\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Video Tutorials\u003C\u002Fh4>\n\u003Cp>By place and points ranking \u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FCMx9V-Q2UEk?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch4>Our Slogan and Global Goal\u003C\u002Fh4>\n\u003Cp>We push our client’s projects to a new level. Our global goal is to develop top-quality software for complete sports league management.\u003C\u002Fp>\n","Sports plugin for motor racing, athletics, aquatics, gymnastics, golf, running, cycling, skiing, poker and similar sports. Manage your league with us!",11134,6,"2026-01-28T15:15:00.000Z","6.8.5","4.0","7.4",[70,71,72,73,20],"athletics","motosport","olympic-games","racing","http:\u002F\u002Fjoomsport.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fjoomsport-achievements.1.7.zip",{"slug":77,"name":78,"version":79,"author":80,"author_profile":81,"description":17,"short_description":82,"active_installs":43,"downloaded":83,"rating":43,"num_ratings":44,"last_updated":84,"tested_up_to":85,"requires_at_least":86,"requires_php":17,"tags":87,"homepage":91,"download_link":92,"security_score":93,"vuln_count":13,"unpatched_count":13,"last_vuln_date":24,"fetched_at":25},"mstw-schedules-scoreboards","MSTW Schedules & Scoreboards","1.5.1","Mark O'Donnell","https:\u002F\u002Fprofiles.wordpress.org\u002Fmarkodonnell\u002F","Manages multiple sports team schedules and scoreboards. Displays schedule tables, schedule sliders, scoreboards, and countdown timers.",13735,"2024-11-19T01:59:00.000Z","6.6.5","5.3",[19,88,89,20,90],"schedule","scoreboards","team-schedule","http:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmstw-schedules-scoreboards.1.5.1.zip",92,{"slug":95,"name":96,"version":97,"author":95,"author_profile":98,"description":99,"short_description":100,"active_installs":11,"downloaded":101,"rating":43,"num_ratings":44,"last_updated":102,"tested_up_to":46,"requires_at_least":47,"requires_php":68,"tags":103,"homepage":107,"download_link":108,"security_score":43,"vuln_count":13,"unpatched_count":13,"last_vuln_date":24,"fetched_at":25},"meinturnierplan","MeinTurnierplan","1.0.5","https:\u002F\u002Fprofiles.wordpress.org\u002Fmeinturnierplan\u002F","\u003Cp>MeinTurnierplan allows you to display tournament tables and match schedules from meinturnierplan.de on your WordPress site. Perfect for sports clubs, leagues, and tournament organizers who want to showcase standings, rankings, and match schedules on their WordPress website.\u003C\u002Fp>\n\u003Ch3>External Services\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>MeinTurnierplan.de Service\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>This plugin uses \u003Ca href=\"https:\u002F\u002Fwww.meinturnierplan.de\u002F\" rel=\"nofollow ugc\">MeinTurnierplan.de\u003C\u002Fa> for both displaying tournament content and retrieving tournament configuration data.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>What it does:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>\n\u003Cp>\u003Cstrong>Frontend Display (Public-Facing):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Displays tournament tables and match schedules to site visitors via iframe embeds\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Endpoints Used:\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>\u003Ccode>https:\u002F\u002Fwww.meinturnierplan.de\u002FdisplayTable.php\u003C\u002Fcode> (for tournament standings)\u003C\u002Fli>\n\u003Cli>\u003Ccode>https:\u002F\u002Fwww.meinturnierplan.de\u002FdisplayMatches.php\u003C\u002Fcode> (for match schedules)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When:\u003C\u002Fstrong> When a visitor loads a page with tournament content (shortcode, block, or widget)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Admin Configuration (Admin Area Only):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Provides tournament structure data via JSON API to help administrators configure displays\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Endpoint Used:\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>\u003Ccode>https:\u002F\u002Fwww.meinturnierplan.de\u002Fjson\u002Fjson.php\u003C\u002Fcode> (tournament structure data)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When:\u003C\u002Fstrong> Only in WordPress admin area when:\n\u003Cul>\n\u003Cli>Administrator enters a Tournament ID in settings\u003C\u002Fli>\n\u003Cli>Administrator clicks “Refresh Groups” or similar refresh buttons\u003C\u002Fli>\n\u003Cli>Admin preview is loaded or refreshed\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>What it retrieves:\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>Tournament groups\u002Fdivisions structure\u003C\u002Fli>\n\u003Cli>Team lists and names\u003C\u002Fli>\n\u003Cli>Tournament options (showCourts, showGroups, showReferees, finalMatches)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Purpose:\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>Auto-populate group selection dropdowns in admin interface\u003C\u002Fli>\n\u003Cli>Determine which features are available for the tournament\u003C\u002Fli>\n\u003Cli>Provide better admin user experience with automatic configuration\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data cached:\u003C\u002Fstrong> Retrieved data is cached for 15 minutes to minimize API calls\u003C\u002Fli>\n\u003Cli>\u003Cstrong>NOT used on frontend:\u003C\u002Fstrong> JSON API is only contacted from WordPress admin area, never from public-facing pages\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cul>\n\u003Cli>\u003Cstrong>Data Sent:\u003C\u002Fstrong> Tournament ID only (no personal data, no user information)\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.meinturnierplan.de\u002Flegal.php?t=privacy&v=2019-04-20&l=en\" rel=\"nofollow ugc\">Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.meinturnierplan.de\u002Flegal.php?t=tou&v=2019-04-20&l=en\" rel=\"nofollow ugc\">Terms of Service\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>What the Embedded Widgets Collect:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>The embedded widgets:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>NO tracking scripts\u003C\u002Fstrong> – The embedded widgets do not use Google Analytics or any other analytics services\u003C\u002Fli>\n\u003Cli>\u003Cstrong>NO cookies\u003C\u002Fstrong> – The widgets do not set any cookies in users’ browsers\u003C\u002Fli>\n\u003Cli>\u003Cstrong>NO third-party resources\u003C\u002Fstrong> – The widgets only load CSS styling from meinturnierplan.de (no Google Fonts, AdSense, or other external services)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Communication:\u003C\u002Fstrong> The widgets only use JavaScript to send iframe dimensions to your page for proper display sizing (via postMessage API)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>What Data May Be Collected:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>When users view embedded tournament content, meinturnierplan.de’s web server may automatically log:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>IP addresses (standard web server logs)\u003C\u002Fli>\n\u003Cli>Browser type and version (from User-Agent header)\u003C\u002Fli>\n\u003Cli>Referrer URL (your website where the widget is embedded)\u003C\u002Fli>\n\u003Cli>Access timestamp\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This is standard web server logging and does not involve cookies, tracking scripts, or persistent user identification.\u003C\u002Fp>\n\u003Ch3>Privacy Notice\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>This plugin itself does not:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Track users\u003C\u002Fli>\n\u003Cli>Collect personal data\u003C\u002Fli>\n\u003Cli>Use cookies or localStorage\u003C\u002Fli>\n\u003Cli>Send personal or sensitive data to any server\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Data Transmission:\u003C\u002Fstrong>\u003Cbr \u002F>\nThe only data sent by this plugin is the Tournament ID to meinturnierplan.de when you explicitly add tournament content (via shortcode, block, or widget) to display on your pages.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Embedded Widget Behavior:\u003C\u002Fstrong>\u003Cbr \u002F>\nThe embedded widgets from meinturnierplan.de:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Do NOT use tracking scripts (no Google Analytics in widgets)\u003C\u002Fli>\n\u003Cli>Do NOT set cookies\u003C\u002Fli>\n\u003Cli>Do NOT load third-party services (no Google Fonts, AdSense, etc.)\u003C\u002Fli>\n\u003Cli>Only communicate iframe dimensions back to your page for proper display\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Standard Web Server Logging:\u003C\u002Fstrong>\u003Cbr \u002F>\nLike any web resource, meinturnierplan.de’s servers may log standard HTTP request data (IP address, browser type, referrer, timestamp) when serving the embedded content. This is standard practice for all web servers and does not involve user tracking or cookies.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>No Consent Required:\u003C\u002Fstrong>\u003Cbr \u002F>\nBecause the embedded widgets do not use cookies, tracking scripts, or persistent user identification, no additional cookie consent is required beyond standard web server logging disclosure in your privacy policy.\u003C\u002Fp>\n\u003Ch4>Available Languages\u003C\u002Fh4>\n\u003Cp>The plugin is available in the following languages:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>English\u003C\u002Fli>\n\u003Cli>German (Deutsch)\u003C\u002Fli>\n\u003Cli>Spanish (Español)\u003C\u002Fli>\n\u003Cli>French (Français)\u003C\u002Fli>\n\u003Cli>Italian (Italiano)\u003C\u002Fli>\n\u003Cli>Polish (Polski)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Key Features\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Two Custom Post Types:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Tournament Tables\u003C\u002Fstrong> – Display standings, rankings, and statistics\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Match Lists\u003C\u002Fstrong> – Display scheduled matches and results\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Multiple Display Methods:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Gutenberg Blocks\u003C\u002Fstrong> – Native block editor support for both tables and matches\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Shortcodes\u003C\u002Fstrong> – \u003Ccode>[mtrn-table]\u003C\u002Fcode> and \u003Ccode>[mtrn-matches]\u003C\u002Fcode> with extensive customization options\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Widgets\u003C\u002Fstrong> – Legacy widget support for both content types\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Extensive Customization:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Control colors, fonts, borders, and spacing\u003C\u002Fli>\n\u003Cli>Toggle visibility of specific columns (wins, losses, logos, etc.)\u003C\u002Fli>\n\u003Cli>Customize styling options (colors, fonts, spacing)\u003C\u002Fli>\n\u003Cli>Real-time preview while editing in the admin area\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Additional Features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>External integration with tournament management systems via IDs\u003C\u002Fli>\n\u003Cli>Responsive design – Mobile-friendly styling with automatic adjustments\u003C\u002Fli>\n\u003Cli>AJAX-powered live preview in admin area\u003C\u002Fli>\n\u003Cli>Automatic display on single custom post type pages\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Usage\u003C\u002Fh4>\n\u003Cp>After activation, navigate to \u003Cstrong>Tournament Tables\u003C\u002Fstrong> or \u003Cstrong>Tournament Match Lists\u003C\u002Fstrong> in the admin menu to create your first content. You can then display your content using:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>Gutenberg Blocks\u003C\u002Fstrong> – Add the Tournament Table or Tournament Match List block to any post or page\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Shortcodes\u003C\u002Fstrong> – Use \u003Ccode>[mtrn-table id=\"123\"]\u003C\u002Fcode> or \u003Ccode>[mtrn-matches id=\"456\"]\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Widgets\u003C\u002Fstrong> – Add the Tournament Table or Tournament Match List widget to any widget area\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Automatic Display\u003C\u002Fstrong> – Visit single tournament table or match list pages directly\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Shortcode Examples\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Tournament Table:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>[mtrn-table id=\"external-id\"]\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>[mtrn-table post_id=\"123\"]\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>[mtrn-table id=\"external-id\" lang=\"de\" group=\"A\"]\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Matches:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>[mtrn-matches id=\"external-id\"]\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>[mtrn-matches post_id=\"456\"]\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>[mtrn-matches id=\"external-id\" lang=\"de\" group=\"A\"]\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Links\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FAL1337\u002Fmeinturnierplan\" rel=\"nofollow ugc\">GitHub Repository\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.meinturnierplan.de\" rel=\"nofollow ugc\">Plugin Website\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Development\u003C\u002Fh3>\n\u003Cp>The plugin follows WordPress coding standards and best practices:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Security\u003C\u002Fstrong> – Proper sanitization, validation, and nonce verification\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Internationalization\u003C\u002Fstrong> – Full i18n support with text domain \u003Ccode>meinturnierplan\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Modern WordPress\u003C\u002Fstrong> – Support for Gutenberg blocks and REST API\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Clean Architecture\u003C\u002Fstrong> – Separation of concerns with dedicated classes for each feature\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Object-Oriented\u003C\u002Fstrong> – Class-based structure with singleton pattern\u003C\u002Fli>\n\u003Cli>\u003Cstrong>AJAX Integration\u003C\u002Fstrong> – Real-time preview functionality\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>For issues, feature requests, and contributions, please visit:\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FAL1337\u002Fmeinturnierplan\" rel=\"nofollow ugc\">GitHub Repository\u003C\u002Fa>\u003C\u002Fp>\n","Display tournament tables and match lists using custom post types, supporting Gutenberg blocks, widgets, and shortcodes.",253,"2026-01-14T15:55:00.000Z",[4,20,104,105,106],"standings","table","tournament","https:\u002F\u002Fwww.meinturnierplan.de","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmeinturnierplan.1.0.5.zip",{"slug":110,"name":111,"version":112,"author":113,"author_profile":114,"description":115,"short_description":116,"active_installs":11,"downloaded":117,"rating":43,"num_ratings":28,"last_updated":118,"tested_up_to":119,"requires_at_least":120,"requires_php":121,"tags":122,"homepage":125,"download_link":126,"security_score":23,"vuln_count":13,"unpatched_count":13,"last_vuln_date":24,"fetched_at":25},"sports-booking-slot","Sports Booking Slot","1.0.0","naim42","https:\u002F\u002Fprofiles.wordpress.org\u002Fnaim42\u002F","\u003Cp>Sports Booking Slot plugin empower your site to create slots for each and every sports\u002Fgame, for as many as specific days you want. The visitors\u003Cbr \u002F>\ncan see lists of steps and options to proceed such as facilities like turf one or turf two, then available hourly slots for conjugated 3 days as per the facility selected.\u003C\u002Fp>\n\u003Cp>so for visitor the steps are,\u003Cbr \u002F>\n * Select a facility like [sports_name] turf one or two\u003Cbr \u002F>\n * Select hourly slots for required dates\u003Cbr \u002F>\n * Proceed to payment\u003Cbr \u002F>\n * cart->checkout->woocommerce payment->order completed->slots are booked permanently.\u003Cbr \u002F>\n * Visitor can select any specific date before selecting any facility and then go for the steps above\u003C\u002Fp>\n\u003Cp>For admin\u003Cbr \u002F>\n * Create a product from woocommerce product named like [sports_name] turf one or two\u003Cbr \u002F>\n * Go to ‘Sports Booking > add new slot’\u003Cbr \u002F>\n * Select a product, date and available slots per each hour and submit it\u003Cbr \u002F>\n * Go to ‘Sports Booking > Booking Slot Lists’\u003Cbr \u002F>\n * Lists of all slots you have created yet\u003Cbr \u002F>\n * Select to See, Edit and Update any created single slot here with beautiful ajax interface without refreshing the page.\u003Cbr \u002F>\n * See booked slots by visitors in ‘woocommerce > orders’\u003Cbr \u002F>\n * On clicking any particular order you can see which slots are booked by the visitor.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>Must have woocommerce installed and activated previously.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n","Sports Booking Slot is amazing free plugin that enables one to book and purchase available slots for any sports( indoor & outdoor ) and virtual ga &hellip;",1114,"2021-04-06T13:05:00.000Z","5.7.15","5.0","7.0",[123,19,124],"booking-slot","sports-booking","https:\u002F\u002Fwoopearl.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsports-booking-slot.1.0.0.zip",{"attackSurface":128,"codeSignals":152,"taintFlows":305,"riskAssessment":358,"analyzedAt":371},{"hooks":129,"ajaxHandlers":148,"restRoutes":149,"shortcodes":150,"cronEvents":151,"entryPointCount":13,"unprotectedCount":13},[130,136,140,144],{"type":131,"name":132,"callback":133,"file":134,"line":135},"action","init","matches_init","matches.php",31,{"type":131,"name":137,"callback":138,"file":134,"line":139},"admin_menu","matches_admin_menu",104,{"type":131,"name":141,"callback":142,"file":134,"line":143},"admin_init","matches_register_settings",105,{"type":131,"name":145,"callback":146,"file":134,"line":147},"wp_print_styles","matches_display_widget_css",159,[],[],[],[],{"dangerousFunctions":153,"sqlUsage":154,"outputEscaping":181,"fileOperations":13,"externalRequests":13,"nonceChecks":13,"capabilityChecks":303,"bundledLibraries":304},[],{"prepared":155,"raw":156,"locations":157},12,9,[158,162,164,166,169,172,173,177,179],{"file":159,"line":160,"context":161},"admin_matches.php",78,"$wpdb->get_results() with variable interpolation",{"file":159,"line":163,"context":161},107,{"file":159,"line":165,"context":161},137,{"file":167,"line":168,"context":161},"admin_teams.php",64,{"file":134,"line":170,"context":171},48,"$wpdb->get_var() with variable interpolation",{"file":134,"line":170,"context":171},{"file":174,"line":175,"context":176},"widget.php",37,"$wpdb->get_row() with variable interpolation",{"file":174,"line":178,"context":176},39,{"file":174,"line":180,"context":161},42,{"escaped":28,"rawEcho":182,"locations":183},68,[184,187,189,190,192,194,196,197,198,200,202,204,206,208,210,212,214,216,219,221,222,224,225,227,229,231,233,235,237,239,240,241,243,245,246,247,249,251,253,254,255,256,258,260,262,264,265,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,295,296,297,299,300,301],{"file":159,"line":185,"context":186},82,"raw output",{"file":159,"line":188,"context":186},83,{"file":159,"line":23,"context":186},{"file":159,"line":191,"context":186},86,{"file":159,"line":193,"context":186},87,{"file":159,"line":195,"context":186},88,{"file":159,"line":195,"context":186},{"file":159,"line":93,"context":186},{"file":159,"line":199,"context":186},97,{"file":159,"line":201,"context":186},124,{"file":159,"line":203,"context":186},146,{"file":159,"line":205,"context":186},147,{"file":159,"line":207,"context":186},157,{"file":159,"line":209,"context":186},160,{"file":159,"line":211,"context":186},161,{"file":159,"line":213,"context":186},162,{"file":159,"line":215,"context":186},165,{"file":217,"line":218,"context":186},"admin_options.php",36,{"file":217,"line":220,"context":186},44,{"file":217,"line":170,"context":186},{"file":217,"line":223,"context":186},52,{"file":217,"line":223,"context":186},{"file":217,"line":226,"context":186},57,{"file":217,"line":228,"context":186},58,{"file":217,"line":230,"context":186},60,{"file":167,"line":232,"context":186},70,{"file":167,"line":234,"context":186},71,{"file":167,"line":236,"context":186},73,{"file":167,"line":238,"context":186},77,{"file":167,"line":185,"context":186},{"file":167,"line":93,"context":186},{"file":167,"line":242,"context":186},101,{"file":167,"line":244,"context":186},102,{"file":167,"line":244,"context":186},{"file":167,"line":143,"context":186},{"file":134,"line":248,"context":186},148,{"file":134,"line":250,"context":186},153,{"file":174,"line":252,"context":186},63,{"file":174,"line":182,"context":186},{"file":174,"line":188,"context":186},{"file":174,"line":193,"context":186},{"file":174,"line":257,"context":186},89,{"file":174,"line":259,"context":186},91,{"file":174,"line":261,"context":186},93,{"file":174,"line":263,"context":186},103,{"file":174,"line":143,"context":186},{"file":174,"line":163,"context":186},{"file":174,"line":267,"context":186},115,{"file":174,"line":269,"context":186},119,{"file":174,"line":271,"context":186},121,{"file":174,"line":273,"context":186},123,{"file":174,"line":275,"context":186},125,{"file":174,"line":277,"context":186},139,{"file":174,"line":279,"context":186},141,{"file":174,"line":281,"context":186},143,{"file":174,"line":283,"context":186},145,{"file":174,"line":285,"context":186},154,{"file":174,"line":287,"context":186},156,{"file":174,"line":289,"context":186},158,{"file":174,"line":291,"context":186},166,{"file":174,"line":293,"context":186},171,{"file":174,"line":293,"context":186},{"file":174,"line":293,"context":186},{"file":174,"line":293,"context":186},{"file":174,"line":298,"context":186},173,{"file":174,"line":298,"context":186},{"file":174,"line":298,"context":186},{"file":174,"line":302,"context":186},178,3,[],[306,340],{"entryPoint":307,"graph":308,"unsanitizedCount":338,"severity":339},"\u003Cadmin_matches> (admin_matches.php:0)",{"nodes":309,"edges":333},[310,314,319,322,326,329],{"id":311,"type":312,"label":313,"file":159,"line":175},"n0","source","$_POST['id']",{"id":315,"type":316,"label":317,"file":159,"line":175,"wp_function":318},"n1","sink","query() [SQLi]","query",{"id":320,"type":312,"label":313,"file":159,"line":321},"n2",136,{"id":323,"type":316,"label":324,"file":159,"line":321,"wp_function":325},"n3","get_row() [SQLi]","get_row",{"id":327,"type":312,"label":328,"file":159,"line":321},"n4","$_POST (x6)",{"id":330,"type":316,"label":331,"file":159,"line":203,"wp_function":332},"n5","echo() [XSS]","echo",[334,336,337],{"from":311,"to":315,"sanitized":335},false,{"from":320,"to":323,"sanitized":335},{"from":327,"to":330,"sanitized":335},8,"high",{"entryPoint":341,"graph":342,"unsanitizedCount":64,"severity":339},"\u003Cadmin_teams> (admin_teams.php:0)",{"nodes":343,"edges":354},[344,347,348,350,351,353],{"id":311,"type":312,"label":345,"file":167,"line":346},"$_POST['id'] (x2)",32,{"id":315,"type":316,"label":317,"file":167,"line":346,"wp_function":318},{"id":320,"type":312,"label":313,"file":167,"line":349},99,{"id":323,"type":316,"label":324,"file":167,"line":349,"wp_function":325},{"id":327,"type":312,"label":352,"file":167,"line":349},"$_POST (x3)",{"id":330,"type":316,"label":331,"file":167,"line":242,"wp_function":332},[355,356,357],{"from":311,"to":315,"sanitized":335},{"from":320,"to":323,"sanitized":335},{"from":327,"to":330,"sanitized":335},{"summary":359,"deductions":360},"The \"matches\" v0.5 plugin presents a mixed security profile. On the positive side, it has a very small attack surface, with no apparent entry points like AJAX handlers, REST API routes, shortcodes, or cron events. The absence of known CVEs and a clean vulnerability history suggests a history of secure development or a lack of targeted analysis.  However, significant concerns arise from the static code analysis.  A critical weakness is the extremely poor output escaping, with only 1% of outputs being properly escaped. This, combined with two high-severity taint flows with unsanitized paths, indicates a strong potential for cross-site scripting (XSS) vulnerabilities, especially if user-supplied data can reach these unsanitized paths.  Furthermore, while the majority of SQL queries use prepared statements, 43% do not, posing a risk of SQL injection if these queries handle user input without proper sanitization.\n\nThe lack of documented vulnerabilities is a strength, but the code analysis highlights areas that require immediate attention. The identified taint flows and inadequate output escaping are major red flags that could be exploited even without historical CVEs.  The plugin's minimal attack surface is a benefit, but it doesn't negate the risks posed by the insecure coding practices observed.  Therefore, while the plugin has a clean history, the current code analysis reveals significant potential vulnerabilities that need to be addressed.",[361,363,365,368],{"reason":362,"points":155},"Unsanitized taint flows (high severity)",{"reason":364,"points":338},"Poor output escaping (1% proper)",{"reason":366,"points":367},"SQL queries without prepared statements (43%)",7,{"reason":369,"points":370},"No nonce checks",5,"2026-03-16T23:56:28.316Z",{"wat":373,"direct":379},{"assetPaths":374,"generatorPatterns":376,"scriptPaths":377,"versionParams":378},[375],"\u002Fwp-content\u002Fplugins\u002Fmatches\u002Fwidget.css",[],[],[],{"cssClasses":380,"htmlComments":381,"htmlAttributes":403,"restEndpoints":404,"jsGlobals":405,"shortcodeOutput":406},[],[382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402],"Copyright 2010-2012 Anders Mårtensson \u003Canders@nemrod.se>","This file is part of Matches.","Matches is free software: you can redistribute it and\u002For modify","it under the terms of the GNU General Public License as published by","the Free Software Foundation, either version 3 of the License, or","(at your option) any later version.","Matches is distributed in the hope that it will be useful,","but WITHOUT ANY WARRANTY; without even the implied warranty of","MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the","GNU General Public License for more details.","You should have received a copy of the GNU General Public License","along with Matches.  If not, see \u003Chttp:\u002F\u002Fwww.gnu.org\u002Flicenses\u002F>.","Plugin Name: Matches","Plugin URI: http:\u002F\u002Fnemrod.se\u002Fwordpress\u002Fmatches-wordpress-plugin","Description: This plugin makes it easy to administer and display matches (sports or otherwise) with a neat widget.","Version: 0.5","Author: Anders Mårtensson","Author URI: http:\u002F\u002Fnemrod.se","License: GPLv3","ADMIN STUFF","ACTUAL OUTPUT",[],[],[],[]]