[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f6F_BqXgbsoDyGzsEeuWH7ZTZmTHiJn7vbN1Zrsnl5C4":3},{"slug":4,"name":5,"version":6,"author":5,"author_profile":7,"description":8,"short_description":9,"active_installs":10,"downloaded":11,"rating":12,"num_ratings":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":24,"download_link":25,"security_score":26,"vuln_count":27,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"vulnerabilities":31,"developer":80,"crawl_stats":37,"alternatives":83,"analysis":179,"fingerprints":1286},"tournamatch","Tournamatch","4.7.0","https:\u002F\u002Fprofiles.wordpress.org\u002Ftournamatch\u002F","\u003Cp>Use this plugin to create a gaming community with your own tournaments, ladders, competitor challenges, and more. Ladder standings (or “leaderboard”) track points, wins, losses, [optionally] draws, games played, win streak, and win percent. Tournament brackets support single elimination head-to-head competitions. Tournamatch also includes match challenges, player profiles, team profiles, ladder and tournament rule pages, match lists, and a player dashboard for managing everything.\u003C\u002Fp>\n\u003Cp>Using Tournamatch, you create ladder or tournament events and allow registered users to self-serve. Registered users can create their own teams, join other teams, accept or decline join requests, drop team members, and send email or user team invitations; users can send match challenges; users or admins report, confirm, or dispute match results; ladders and tournaments will update automatically when match results are confirmed.\u003C\u002Fp>\n\u003Cp>This plugin includes many pages and shortcodes with user-facing components. You should expect to restyle those using the WordPress Backend -> Appearance, Customize -> Additional CSS page.\u003C\u002Fp>\n\u003Cp>Need support or have a feature request? Please reach out to us here on the WordPress.org forums, on Twitter at \u003Ca href=\"https:\u002F\u002Ftwitter.com\u002FTournamatch\" rel=\"nofollow ugc\">@tournamatch\u003C\u002Fa>, on Facebook at \u003Ca href=\"https:\u002F\u002Fwww.facebook.com\u002Ftournamatch\" rel=\"nofollow ugc\">Tournamatch\u003C\u002Fa>, or visit our website at \u003Ca href=\"https:\u002F\u002Fwww.tournamatch.com\" rel=\"nofollow ugc\">www.tournamatch.com\u003C\u002Fa>.\u003C\u002Fp>\n","A ladder and tournament plugin for eSports, physical sports, board games, and other online gaming leagues.",100,9397,84,6,"2025-12-09T12:21:00.000Z","6.9.0","4.7","5.6.20",[19,20,21,22,23],"bracket","ladder","leaderboard","standings","tournament","https:\u002F\u002Fwww.tournamatch.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftournamatch.4.7.0.zip",74,4,1,"2025-05-22 00:00:00","2026-03-15T15:16:48.613Z",[32,47,59,72],{"id":33,"url_slug":34,"title":35,"description":36,"plugin_slug":4,"theme_slug":37,"affected_versions":38,"patched_in_version":39,"severity":40,"cvss_score":41,"cvss_vector":42,"vuln_type":43,"published_date":29,"updated_date":44,"references":45,"days_to_patch":28},"CVE-2025-4594","tournamatch-authenticated-contributor-stored-cross-site-scripting","Tournamatch \u003C= 4.6.1 - Authenticated (Contributor+) Stored Cross-Site Scripting","The Tournamatch plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the plugin's 'trn-ladder-registration-button' shortcode in all versions up to, and including, 4.6.1 due to insufficient input sanitization and output escaping on user supplied attributes. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.",null,"\u003C=4.6.1","4.6.2","medium",6.4,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:L\u002FUI:N\u002FS:C\u002FC:L\u002FI:L\u002FA:N","Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')","2025-05-23 03:39:41",[46],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002Ffc912831-bbdd-4f8f-a620-47e41b1b731d?source=api-prod",{"id":48,"url_slug":49,"title":50,"description":51,"plugin_slug":4,"theme_slug":37,"affected_versions":52,"patched_in_version":37,"severity":40,"cvss_score":53,"cvss_vector":54,"vuln_type":43,"published_date":55,"updated_date":56,"references":57,"days_to_patch":37},"CVE-2025-32600","tournamatch-reflected-cross-site-scripting","Tournamatch \u003C= 4.6.2 - Reflected Cross-Site Scripting","The Tournamatch plugin for WordPress is vulnerable to Reflected Cross-Site Scripting in versions up to, and including, 4.6.2 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that execute if they can successfully trick a user into performing an action such as clicking on a link.","\u003C=4.6.2",6.1,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:N\u002FUI:R\u002FS:C\u002FC:L\u002FI:L\u002FA:N","2025-04-09 00:00:00","2025-05-21 13:38:13",[58],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002F2e79b6b2-b227-44a4-85e3-6859c4f6f972?source=api-prod",{"id":60,"url_slug":61,"title":62,"description":63,"plugin_slug":4,"theme_slug":37,"affected_versions":64,"patched_in_version":65,"severity":40,"cvss_score":66,"cvss_vector":67,"vuln_type":43,"published_date":68,"updated_date":69,"references":70,"days_to_patch":13},"CVE-2024-5644","wordpress-plugin-tournamatch-authenticated-admin-stored-cross-site-scripting","WordPress Plugin Tournamatch \u003C 4.6.1 - Authenticated (Admin+) Stored Cross-Site Scripting","The Tournamatch plugin for WordPress is vulnerable to Stored Cross-Site Scripting via admin settings in all versions up to, and including, 4.6.0 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with administrator-level permissions and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This only affects multi-site installations and installations where unfiltered_html has been disabled.","\u003C=4.6.0","4.6.1",4.4,"CVSS:3.1\u002FAV:N\u002FAC:H\u002FPR:H\u002FUI:N\u002FS:C\u002FC:L\u002FI:L\u002FA:N","2024-06-22 00:00:00","2024-06-27 14:02:49",[71],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002F18643abb-171c-43d9-ad62-3414679eb402?source=api-prod",{"id":73,"url_slug":74,"title":75,"description":76,"plugin_slug":4,"theme_slug":37,"affected_versions":64,"patched_in_version":65,"severity":40,"cvss_score":41,"cvss_vector":42,"vuln_type":43,"published_date":68,"updated_date":77,"references":78,"days_to_patch":13},"CVE-2024-5627","wordpress-plugin-tournamatch-authenticated-subscriber-stored-cross-site-scripting","WordPress Plugin Tournamatch \u003C 4.6.1 - Authenticated (Subscriber+) Stored Cross-Site Scripting","The Tournamatch plugin for WordPress is vulnerable to Stored Cross-Site Scripting in all versions up to, and including, 4.6.0 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.","2024-06-27 14:02:05",[79],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002Fc1005616-f3b5-45fa-97f8-784429a4a168?source=api-prod",{"slug":4,"display_name":5,"profile_url":7,"plugin_count":28,"total_installs":10,"avg_security_score":26,"avg_patch_time_days":27,"trust_score":81,"computed_at":82},82,"2026-04-04T11:42:12.141Z",[84,103,124,145,163],{"slug":85,"name":86,"version":87,"author":88,"author_profile":89,"description":90,"short_description":91,"active_installs":92,"downloaded":93,"rating":81,"num_ratings":94,"last_updated":95,"tested_up_to":96,"requires_at_least":16,"requires_php":17,"tags":97,"homepage":100,"download_link":101,"security_score":10,"vuln_count":102,"unpatched_count":102,"last_vuln_date":37,"fetched_at":30},"simple-tournament-brackets","Simple Tournament Brackets","1.3.1","SimpleTournamentBrackets","https:\u002F\u002Fprofiles.wordpress.org\u002Fsimpletournamentbrackets\u002F","\u003Cp>\u003Cstrong>Transform your website into a tournament hub with professional-looking brackets that engage your audience.\u003C\u002Fstrong> Simple Tournament Brackets makes it effortless to create and manage single-elimination tournaments for any competition – from esports events to office fantasy leagues, sporting competitions to gaming tournaments.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Key Features:\u003C\u002Fstrong>\u003Cbr \u002F>\n– \u003Cstrong>Flexible Tournament Sizes:\u003C\u002Fstrong> Support for 4-256 competitors with automatic bye management\u003Cbr \u002F>\n– \u003Cstrong>Professional Presentation:\u003C\u002Fstrong> Clean, responsive bracket displays that look great on any device\u003Cbr \u002F>\n– \u003Cstrong>Easy Management:\u003C\u002Fstrong> Intuitive admin interface for seeding competitors and advancing matches\u003Cbr \u002F>\n– \u003Cstrong>Customizable Design:\u003C\u002Fstrong> Match your site’s branding with customizable colors and styling\u003Cbr \u002F>\n– \u003Cstrong>Simple Integration:\u003C\u002Fstrong> Display brackets anywhere with easy shortcodes\u003Cbr \u002F>\n– \u003Cstrong>Real-time Updates:\u003C\u002Fstrong> Brackets update instantly as matches progress\u003C\u002Fp>\n\u003Cp>Perfect for sports leagues, gaming communities, corporate events, educational competitions, and any scenario where you need to showcase tournament progression in a professional, engaging format.\u003C\u002Fp>\n\u003Cp>You can display the brackets on any page using the \u003Ccode>[simple-tournament-brackets tournament_id=\"$id\"]\u003C\u002Fcode> shortcode where \u003Cstrong>$id\u003C\u002Fstrong> corresponds to the \u003Cem>post_id\u003C\u002Fem> of the created tournament. For example, if the post_id for a tournament you want to display is 2025, then you should use the shortcode \u003Ccode>[simple-tournament-brackets tournament_id=\"2025\"]\u003C\u002Fcode>. The shortcode to use is also displayed for each tournament on the WordPress backend \u003Cstrong>All Tournaments\u003C\u002Fstrong> page.\u003C\u002Fp>\n\u003Cp>You can display a list of tournament matches on any page using the \u003Ccode>[simple-tournament-brackets-match-list tournament_id=\"$id\"]\u003C\u002Fcode> shortcode where \u003Cstrong>$id\u003C\u002Fstrong> corresponds to the \u003Cem>post_id\u003C\u002Fem> of the created tournament. For example, if the post_id for the match list you want to display is 66, then you should use the shortcode \u003Ccode>[simple-tournament-brackets-match-list tournament_id=\"66\"]\u003C\u002Fcode>. The shortcode to use is also displayed for each tournament on the WordPress backend \u003Cstrong>All Tournaments\u003C\u002Fstrong> page.\u003C\u002Fp>\n\u003Cp>Need support or have a feature request? Please reach out to us here on the WordPress.org forums or visit our website at \u003Ca href=\"https:\u002F\u002Fwww.simpletournamentbrackets.com\" rel=\"nofollow ugc\">www.simpletournamentbrackets.com\u003C\u002Fa>.\u003C\u002Fp>\n","Display tournament brackets on any page using a shortcode. Supports manual seeding and any size tournaments up to 256 competitors.",300,6765,8,"2026-03-08T18:40:00.000Z","6.9.4",[19,98,99,23],"bracket-generator","esports","https:\u002F\u002Fwww.simpletournamentbrackets.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsimple-tournament-brackets.1.3.1.zip",0,{"slug":104,"name":105,"version":106,"author":107,"author_profile":108,"description":109,"short_description":110,"active_installs":10,"downloaded":111,"rating":112,"num_ratings":113,"last_updated":114,"tested_up_to":115,"requires_at_least":116,"requires_php":117,"tags":118,"homepage":121,"download_link":122,"security_score":123,"vuln_count":102,"unpatched_count":102,"last_vuln_date":37,"fetched_at":30},"mstw-bracket-builder","MSTW Bracket Builder","1.4","Mark O'Donnell","https:\u002F\u002Fprofiles.wordpress.org\u002Fmarkodonnell\u002F","","Builds and manages tournament brackets. Displays tournament brackets (knockout rounds), and tables of games (fixtures).",9067,60,2,"2025-02-16T19:10:00.000Z","6.7.5","3.4.2","5.6",[19,119,120,23],"knockout-round","sports","https:\u002F\u002Fshoalsummitsolutions.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmstw-bracket-builder.1.4.zip",92,{"slug":125,"name":126,"version":127,"author":128,"author_profile":129,"description":130,"short_description":131,"active_installs":132,"downloaded":133,"rating":10,"num_ratings":134,"last_updated":135,"tested_up_to":115,"requires_at_least":136,"requires_php":109,"tags":137,"homepage":141,"download_link":142,"security_score":143,"vuln_count":28,"unpatched_count":28,"last_vuln_date":144,"fetched_at":30},"world-cup-predictor","World Cup Predictor","1.9.8","ianhaycox","https:\u002F\u002Fprofiles.wordpress.org\u002Fianhaycox\u002F","\u003Cp>This plugin is designed to collect users predictions for each match in FIFA Club World Cup 2025™.\u003C\u002Fp>\n\u003Cp>Users predict the score for each match in the group stage and knockout stage and are awarded points based on the accuracy of their prediction. Match results may also be displayed using this plugin.\u003C\u002Fp>\n\u003Cp>To view examples of usage, visit the website \u003Ca href=\"http:\u002F\u002Fwww.wcp.net.br\u002F\" rel=\"nofollow ugc\">wcp.net.br\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>New in V1.7\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Inclusion of single pages for show Predictions by Match and Predictions of User.\u003Cbr \u002F>\nNew widget for show standings of Stage Groups.\u003Cbr \u002F>\nShow the widget WorldCupPredictions only to logged users.\u003Cbr \u002F>\nFix the kickoff times for browsers’ timezone\u003C\u002Fp>\n\u003Cp>\u003Cstrong>New in V1.5\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Inclusion of matches, teams and locations of the 2014 FIFA World Cup Brazil™.\u003Cbr \u002F>\nAbility for users to toggle match kickoff times between Brazilian and browser local time.\u003Cbr \u002F>\nManually order Group tables in the event that FIFA draw lots.\u003Cbr \u002F>\nCountdown timer message can be customized to use local language conventions.\u003Cbr \u002F>\nDisplay all users predictions for all matches with one shortcode.\u003Cbr \u002F>\nOption to show\u002Fhide avatar in ranking table.\u003Cbr \u002F>\nMarking a match as finished automatically updates the users prediction scores.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>easy adding of matches, venues, results\u003C\u002Fli>\n\u003Cli>entry form for users to make predictions on each World Cup games\u003C\u002Fli>\n\u003Cli>sidebar widget to display prediction standings\u003C\u002Fli>\n\u003Cli>sidebar widget to display currently logged in users’ predictions\u003C\u002Fli>\n\u003Cli>countdown timer to next prediction deadline\u003C\u002Fli>\n\u003Cli>display of match results and group tables\u003C\u002Fli>\n\u003Cli>configurable scoring system to award points to users’ predictions\u003C\u002Fli>\n\u003Cli>toggle match times to local users browser time\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Translations\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Thank you to the following for language translations available in:-\u003C\u002Fp>\n\u003Cul>\n\u003Cli>German. – Fred Kuhl\u003C\u002Fli>\n\u003Cli>French – Robert Maculewicz\u003C\u002Fli>\n\u003Cli>Spanish – Domingo Robaina\u003C\u002Fli>\n\u003Cli>Brazilian Portuguese – Ed Torres\u003C\u002Fli>\n\u003Cli>Dutch – Deborah Kerkhof\u003C\u002Fli>\n\u003Cli>Swedish – Axel\u003C\u002Fli>\n\u003Cli>Arabic – \u003Ca href=\"http:\u002F\u002Fwww.sada-sy.com\u002F\" rel=\"nofollow ugc\">Modar Soos\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Italian – \u003Ca href=\"http:\u002F\u002Fwww.sviluppoiphoneitalia.com\u002F\" rel=\"nofollow ugc\">Giulio Giorgetti\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Russian – Oles Lukas\u003C\u002Fli>\n\u003Cli>Serbian – \u003Ca href=\"http:\u002F\u002Fmarcrelic.wordpress.com\u002F\" rel=\"nofollow ugc\">Marko Relic\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Other translations may be available at \u003Ca href=\"http:\u002F\u002Fwww.wcp.net.br\u002Ftranslations\u002F\" rel=\"nofollow ugc\">Translations\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>If you would like to help with translations please visit the page above and give a comment.\u003C\u002Fp>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Cp>After installation, use Import button on the Overview menu of ‘WCP Cup’ to load the teams and match schedules.\u003C\u002Fp>\n\u003Cp>Verify the timezone offset on this screen. Any difference should reflect the difference in time between your servers’ local time and Russian time. If this setting is incorrect then users may be able to make predictions after kickoff.\u003C\u002Fp>\n\u003Cp>The date and times of matches are in Russian local time (UTC+3)\u003C\u002Fp>\n\u003Cp>In order to manage the teams, matches, etc. the logged user must be have the WordPress capability \u003Ccode>wcup_manager\u003C\u002Fcode>. By default the plugin adds this capability to the Administrator and Editor roles. If the ‘WCP Cup’ menu option is not available, verify that the current user has the \u003Ccode>wcup_manager\u003C\u002Fcode> role. You may need to install a capability manager plugin to manage roles and capabilities.\u003C\u002Fp>\n\u003Cp>Users of the blog do not need any special role or capability to make predictions.\u003C\u002Fp>\n\u003Cp>Once imported you may wish to update the URL setting via the Admin->World Cup menu for each team or venue to add links to pages on your site.\u003C\u002Fp>\n\u003Ch4>Predictions\u003C\u002Fh4>\n\u003Cp>Create a post or page with the shortcode \u003Ccode>[world-cup-predictor]\u003C\u002Fcode> to display an entry form. Other shortcodes are available to display prediction results and match results. See below for more details.\u003C\u002Fp>\n\u003Cp>Users can only predict on matches that have not yet started. Once a match has started it is removed from the entry form preventing further predictions.\u003C\u002Fp>\n\u003Ch4>Match Results\u003C\u002Fh4>\n\u003Cp>As each match is complete, use the Matches admin menu option to enter the goals scored and check the ‘Match Finished’ checkbox.\u003Cbr \u002F>\nThe group tables and match results displayed by the shortcodes will be updated.\u003C\u002Fp>\n\u003Cp>Once a team is confirmed as coming first or second in the group stage, edit the Matches to change the placeholder team to the team that has qualified to the next stage.  For example, if Russia win Group A, edit Match Number 13 and change the team from ‘WA’ to ‘Russia’.\u003C\u002Fp>\n\u003Cp>This change is then reflected in the knockout results table.\u003C\u002Fp>\n\u003Ch4>Options\u003C\u002Fh4>\n\u003Cp>None as yet.\u003C\u002Fp>\n\u003Ch4>Points Calculations\u003C\u002Fh4>\n\u003Cp>Once a match has finished, enter the final score in the Matches tab and check the ‘Match Finished’ box. The displayed group tables\u003Cbr \u002F>\nwill be updated with the latest team standings.\u003C\u002Fp>\n\u003Cp>To update the users’ prediction, select the match in the ‘Predictions’ menu and click ‘Score Selected’. This updates the\u003Cbr \u002F>\nusers’ scores in the widget and on results tables.\u003C\u002Fp>\n\u003Cp>Points are assigned according to the settings in the ‘Configure Scoring’ tab.\u003C\u002Fp>\n\u003Cp>NOTE – The bonus points are cumulative (added to the scores for exact, win and draw).\u003C\u002Fp>\n\u003Cp>Therefore be aware that both the bonus goal and bonus goal difference points amounts will always be added\u003Cbr \u002F>\nto the points for a win because the goals and goal difference are the same.\u003Cbr \u002F>\nThe bonus goal difference points are always added to a draw because the goal difference will match.\u003Cbr \u002F>\nAdjust the win and draw points appropriately if either of the bonus points are non-zero.\u003C\u002Fp>\n\u003Ch4>Shortcodes\u003C\u002Fh4>\n\u003Cp>Use the following shortcodes to display a prediction form, match results, users’ rankings.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Prediction Form\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>You can display an entry form for predictions and the results of matches and predictions with the following shortcodes in a post or page.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[world-cup-predictor]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Display an entry form for all the configured matches where the kickoff time is before the current date and time.\u003Cbr \u002F>\nThe form will display a countdown to the next match deadline. Once the match kickoff time has passed the match will\u003Cbr \u002F>\nno longer be displayed and users cannot make predictions.\u003C\u002Fp>\n\u003Cp>You may optionally supply the attribute \u003Ccode>stage=n\u003C\u002Fcode> where \u003Ccode>n\u003C\u002Fcode> is the stage id to limit the matches to a particular group.\u003C\u002Fp>\n\u003Cp>To display just the matches in the group stages, not the knockout stages, use the attribute \u003Ccode>group=true\u003C\u002Fcode>,\u003Cbr \u002F>\ne.g. \u003Ccode>[world-cup-predictor group=true]\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>To display matches sorted by kickoff time, rather than by each stage, use the attribute \u003Ccode>kickoff=true\u003C\u002Fcode> and optionally a\u003Cbr \u002F>\nlimit, e.g. \u003Ccode>[world-cup-predictor kickoff=true limit=5]\u003C\u002Fcode> to display the next 5 matches.\u003C\u002Fp>\n\u003Cp>To remove the ability to predict penalties during the knockout stages use the attribute \u003Ccode>predict_penalties=0\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Group Tables\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[world-cup-predictor tables=1 stage=n show_results=n]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Display the group tables with the match results once the match has finished and the results have been entered.\u003Cbr \u002F>\nYou may optionally supply the attribute \u003Ccode>stage=n\u003C\u002Fcode> where \u003Ccode>n\u003C\u002Fcode> is the stage id to limit the matches to a particular group.\u003Cbr \u002F>\nYou may optionally supply the attribute \u003Ccode>show_results=n\u003C\u002Fcode> where \u003Ccode>n\u003C\u002Fcode> = 0 or 1 to hide or show the match results below the group table.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Match Results\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[world-cup-predictor results=1 stage=n team=n]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Display a table of match results. You may optionally supply the attribute \u003Ccode>stage=n\u003C\u002Fcode> where \u003Ccode>n\u003C\u002Fcode> is the stage id to limit the matches to a particular group or use attribute \u003Ccode>team=n\u003C\u002Fcode> where \u003Ccode>n\u003C\u002Fcode> is the team id to limit the matches to a particular team.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Users Predictions\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[world-cup-predictor scores=n]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>For each match ID, specified by \u003Ccode>n\u003C\u002Fcode>, display a table of every users’ predictions and the points awarded. Note – users predictions will not be shown\u003Cbr \u002F>\nif the match kickoff time has not yet passed.  This is to prevent users viewing each others predictions before the match has started.\u003C\u002Fp>\n\u003Cp>Use the option \u003Ccode>[world-cup-predictor scores=-1]\u003C\u002Fcode> to display all predictions for all matches in one table.\u003C\u002Fp>\n\u003Cp>Optionally add the attribute \u003Ccode>highlight=\"css-styles\"\u003C\u002Fcode> to add a CSS\u003Cbr \u002F>\nstyle to the table row of the currently logged in user. For example \u003Ccode>[world-cup-predictor scores=1 highlight=\"background:red;font-weight:bold\"]\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Logged in Users Predictions\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[world-cup-predictor user=1 show_total=n show_results=m]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>For the currently logged in user display the list of predictions for that user. If \u003Ccode>n\u003C\u002Fcode> is non-zero then show the total points for this user\u003Cbr \u002F>\nat he foot of the table. If \u003Ccode>m\u003C\u002Fcode> is zero do not show match results against each prediction. Also available via the Widgets.\u003C\u002Fp>\n\u003Cp>You may also display just the users total via \u003Ccode>[world-cup-predictor show_total=1]\u003C\u002Fcode> without the table.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Rankings\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[world-cup-predictor ranking=1 limit=999]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Display a summary of all the users’ points as a ranking table. Optionally add the attribute \u003Ccode>highlight=\"css-styles\"\u003C\u002Fcode> to add a CSS\u003Cbr \u002F>\nstyle to the table row of the currently logged in user. For example \u003Ccode>[world-cup-predictor ranking=1 highlight=\"background:red;font-weight:bold\"]\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Also available via the Widgets.\u003C\u002Fp>\n\u003Ch4>User Rankings Widget\u003C\u002Fh4>\n\u003Cp>The widget displays similar output to the shortcode \u003Ccode>[world-cup-predictor ranking=1 limit=9999]\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>Drag and drop the widget to a sidebar and configure. Multiple instances of the widget, each configured separately, may be\u003Cbr \u002F>\nplaced on a sidebar.\u003C\u002Fp>\n\u003Cp>If not blank, the URL option adds a link to the full results page using the title below as the link text.\u003C\u002Fp>\n\u003Ch4>User Predictions Widget\u003C\u002Fh4>\n\u003Cp>The widget displays the list of the currently logged in users’ predictions similar in output to the shortcode \u003Ccode>[world-cup-predictor user=1]\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>Drag and drop the widget to a sidebar and configure.\u003C\u002Fp>\n\u003Ch4>Toggle timezones\u003C\u002Fh4>\n\u003Cp>All match kickoff times and dates are displayed in Brazilian local time.  If you have changed the match times in the admin screens\u003Cbr \u002F>\nto another timezone, this will NOT work.\u003C\u002Fp>\n\u003Cp>To allow a user to toggle between BRST and local time you need to add the following code in your blog post, or sidebar, that contains\u003Cbr \u002F>\none of the plugin shortcodes: For example,\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003Cdiv class=\"tzcContainer\">\n  \u003Cp id=\"tzLocal\" style=\"display:none\">Match times are currently set to match local time, please click here to convert to your time zone.\u003C\u002Fp>\n  \u003Cp id=\"tzClient\">Match times are currently set to \u003Cstrong>your timezone\u003C\u002Fstrong>, please click here to revert to local time.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The text can be changed to anything appropriate and include images etc. The key items are: \u003Ccode>id=\"tzLocal\"\u003C\u002Fcode> and \u003Ccode>id=\"tzClient\"\u003C\u002Fcode> with the\u003Cbr \u002F>\nsecond item having \u003Ccode>style=\"display:none\"\u003C\u002Fcode>. Users clicking on either of these sentences will toggle all match kickoff times between\u003Cbr \u002F>\nBRST and browser local time. It does rely on the users’ browser being configured correctly for their timezone and locale.\u003C\u002Fp>\n\u003Cp>By default the plugin will also attempt to display match kickoff times in the users local language.\u003C\u002Fp>\n\u003Cp>To disable this \u003Ccode>auto-translate\u003C\u002Fcode> feature uncheck the setting on the overview screen.\u003C\u002Fp>\n","Plugin to manage soccer predictions and present a fantasy football competition for the FIFA Club World Cup 2025™.",50,26194,26,"2025-04-08T10:55:00.000Z","2.8",[138,139,21,140,23],"club-world-cup","football","prediction","https:\u002F\u002Fwcp.net.br\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fworld-cup-predictor.1.9.8.zip",79,"2025-01-13 00:00:00",{"slug":146,"name":147,"version":148,"author":149,"author_profile":150,"description":151,"short_description":152,"active_installs":153,"downloaded":154,"rating":102,"num_ratings":102,"last_updated":155,"tested_up_to":156,"requires_at_least":157,"requires_php":109,"tags":158,"homepage":160,"download_link":161,"security_score":162,"vuln_count":102,"unpatched_count":102,"last_vuln_date":37,"fetched_at":30},"bracketcloud","BracketCloud","1.0.2","drupaljoe","https:\u002F\u002Fprofiles.wordpress.org\u002Fdrupaljoe\u002F","\u003Cp>BracketCloud is an online tournament management platform. This plugin replaces any [bracketcloud] shortcodes with the an embedded tournament from BracketCloud.\u003Cbr \u002F>\nThe shortcode syntax is [bracketcloud tid=123 width=600 height=500] where tid is the unique tournament ID found in the URL of your tournament page and the width\u002Fheight (optional) controls the iframe embed size.\u003C\u002Fp>\n\u003Cp>This plugin only lets you embed previously created tournaments. To create tournaments, visit http:\u002F\u002Fbracketcloud.com and make an account.\u003C\u002Fp>\n","Implements a shortcode for embedding BracketCloud tournaments in post content.",10,3134,"2014-12-31T12:07:00.000Z","4.1.42","2.5",[19,146,159,23],"round-robin","http:\u002F\u002Fbracketcloud.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbracketcloud.1.0.2.zip",85,{"slug":164,"name":165,"version":166,"author":164,"author_profile":167,"description":168,"short_description":169,"active_installs":153,"downloaded":170,"rating":10,"num_ratings":27,"last_updated":171,"tested_up_to":96,"requires_at_least":172,"requires_php":173,"tags":174,"homepage":177,"download_link":178,"security_score":10,"vuln_count":102,"unpatched_count":102,"last_vuln_date":37,"fetched_at":30},"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","6.3","7.4",[175,120,22,176,23],"matches","table","https:\u002F\u002Fwww.meinturnierplan.de","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmeinturnierplan.1.0.5.zip",{"attackSurface":180,"codeSignals":464,"taintFlows":658,"riskAssessment":1272,"analyzedAt":1285},{"hooks":181,"ajaxHandlers":365,"restRoutes":373,"shortcodes":374,"cronEvents":462,"entryPointCount":463,"unprotectedCount":113},[182,187,191,195,197,200,202,205,208,210,212,217,220,225,229,234,237,240,242,245,247,250,253,255,257,259,261,263,265,267,269,272,274,279,282,285,287,290,293,296,299,303,307,311,313,317,320,324,328,331,334,337,341,345,348,352,355,358,362],{"type":183,"name":184,"callback":184,"file":185,"line":186},"action","admin_menu","admin\\class-admin.php",43,{"type":183,"name":184,"callback":188,"file":189,"line":190},"setup_menu","admin\\class-game.php",31,{"type":183,"name":192,"callback":193,"file":189,"line":194},"load-toplevel_page_trn-games","pre_headers",33,{"type":183,"name":184,"callback":188,"file":196,"line":190},"admin\\class-ladder.php",{"type":183,"name":198,"callback":193,"file":196,"line":199},"load-toplevel_page_trn-ladders",42,{"type":183,"name":184,"callback":188,"file":201,"line":190},"admin\\class-matche.php",{"type":183,"name":203,"callback":193,"file":201,"line":204},"load-ladders_page_trn-ladders-matches",45,{"type":183,"name":206,"callback":193,"file":201,"line":207},"load-tournaments_page_trn-tournaments-matches",46,{"type":183,"name":184,"callback":188,"file":209,"line":190},"admin\\class-tournament.php",{"type":183,"name":211,"callback":193,"file":209,"line":199},"load-toplevel_page_trn-tournaments",{"type":183,"name":213,"callback":214,"file":215,"line":216},"init","update_online_users","includes\\classes\\class-tournamatch-online-users.php",38,{"type":183,"name":218,"callback":214,"file":215,"line":219},"admin_init",39,{"type":221,"name":222,"callback":223,"file":224,"line":143},"filter","pre_set_site_transient_update_plugins","trn_check_for_plugin_update","includes\\extensions.php",{"type":221,"name":226,"callback":227,"priority":153,"file":224,"line":228},"plugins_api","trn_plugin_api_call",142,{"type":183,"name":230,"callback":231,"file":232,"line":233},"rest_api_init","register_routes","includes\\rest\\class-challenge-builder.php",35,{"type":183,"name":230,"callback":235,"file":236,"line":216},"register_endpoints","includes\\rest\\class-challenge.php",{"type":183,"name":230,"callback":231,"file":238,"line":239},"includes\\rest\\class-game-image.php",32,{"type":183,"name":230,"callback":231,"file":241,"line":239},"includes\\rest\\class-game.php",{"type":183,"name":230,"callback":235,"file":243,"line":244},"includes\\rest\\class-ladder-competitor.php",37,{"type":183,"name":230,"callback":231,"file":246,"line":233},"includes\\rest\\class-ladder.php",{"type":183,"name":230,"callback":231,"file":248,"line":249},"includes\\rest\\class-match-dispute.php",34,{"type":183,"name":230,"callback":235,"file":251,"line":252},"includes\\rest\\class-matche.php",36,{"type":183,"name":230,"callback":235,"file":254,"line":252},"includes\\rest\\class-player.php",{"type":183,"name":230,"callback":235,"file":256,"line":219},"includes\\rest\\class-team-invitation.php",{"type":183,"name":230,"callback":235,"file":258,"line":244},"includes\\rest\\class-team-member.php",{"type":183,"name":230,"callback":231,"file":260,"line":207},"includes\\rest\\class-team-rank.php",{"type":183,"name":230,"callback":235,"file":262,"line":216},"includes\\rest\\class-team-request.php",{"type":183,"name":230,"callback":235,"file":264,"line":244},"includes\\rest\\class-team.php",{"type":183,"name":230,"callback":231,"file":266,"line":249},"includes\\rest\\class-tournament-competitor.php",{"type":183,"name":230,"callback":231,"file":268,"line":233},"includes\\rest\\class-tournament-registration-list.php",{"type":183,"name":230,"callback":231,"file":270,"line":271},"includes\\rest\\class-tournament-registration.php",52,{"type":183,"name":230,"callback":235,"file":273,"line":233},"includes\\rest\\class-tournament.php",{"type":183,"name":275,"callback":276,"file":277,"line":278},"widgets_init","closure","includes\\widgets\\class-ladder-top-competitor.php",171,{"type":183,"name":275,"callback":276,"file":280,"line":281},"includes\\widgets\\class-latest-matches.php",158,{"type":183,"name":275,"callback":276,"file":283,"line":284},"includes\\widgets\\class-newest-members.php",110,{"type":183,"name":275,"callback":276,"file":286,"line":284},"includes\\widgets\\class-newest-teams.php",{"type":183,"name":275,"callback":276,"file":288,"line":289},"includes\\widgets\\class-online-statistics.php",182,{"type":183,"name":275,"callback":276,"file":291,"line":292},"includes\\widgets\\class-upcoming-matches.php",159,{"type":183,"name":213,"callback":276,"file":294,"line":295},"tournamatch.php",55,{"type":183,"name":213,"callback":297,"file":294,"line":298},"trn_load_text_domain",290,{"type":183,"name":300,"callback":301,"file":294,"line":302},"deleted_user","trn_deleted_user",1078,{"type":183,"name":304,"callback":305,"file":294,"line":306},"wp_enqueue_scripts","trn_register_scripts",1194,{"type":183,"name":308,"callback":309,"file":294,"line":310},"admin_enqueue_scripts","trn_register_admin_scripts",1210,{"type":183,"name":218,"callback":276,"file":294,"line":312},1767,{"type":221,"name":314,"callback":315,"file":294,"line":316},"template_include","trn_filter_template_include",2177,{"type":183,"name":213,"callback":318,"file":294,"line":319},"trn_add_rewrite_rules",2250,{"type":221,"name":321,"callback":322,"file":294,"line":323},"query_vars","trn_add_query_var",2273,{"type":183,"name":325,"callback":326,"file":294,"line":327},"template_redirect","trn_template_redirect",2393,{"type":221,"name":329,"callback":276,"file":294,"line":330},"trn_magic_links",2483,{"type":183,"name":332,"callback":276,"file":294,"line":333},"trn_magic_link_confirm_match_result",2496,{"type":183,"name":335,"callback":276,"file":294,"line":336},"trn_magic_link_accept_team_invitation",2523,{"type":183,"name":338,"callback":339,"file":294,"line":340},"user_register","trn_user_register",2879,{"type":183,"name":342,"callback":343,"file":294,"line":344},"admin_notices","trn_admin_notices",2897,{"type":183,"name":346,"callback":276,"file":294,"line":347},"admin_post_trn-replace-tournament-competitor",2920,{"type":183,"name":349,"callback":350,"file":294,"line":351},"plugins_loaded","trn_update_db_check",3671,{"type":183,"name":353,"callback":276,"file":294,"line":354},"tournamatch_after_header",4146,{"type":183,"name":356,"callback":276,"file":294,"line":357},"tournamatch_before_footer",4153,{"type":183,"name":359,"callback":360,"file":294,"line":361},"wp_head","trn_output_global_config",4409,{"type":183,"name":363,"callback":360,"file":294,"line":364},"admin_head",4410,[366,370],{"action":367,"nopriv":368,"callback":367,"hasNonce":368,"hasCapCheck":368,"file":294,"line":369},"trn_get_nonce",false,4405,{"action":367,"nopriv":371,"callback":367,"hasNonce":368,"hasCapCheck":368,"file":294,"line":372},true,4406,[],[375,379,382,385,389,392,395,398,401,404,408,412,415,418,422,425,429,432,435,438,441,444,447,450,453,456,459],{"tag":376,"callback":377,"file":378,"line":239},"trn-accept-challenge-button","accept_challenge_button","includes\\shortcodes\\class-challenge-shortcodes.php",{"tag":380,"callback":381,"file":378,"line":194},"trn-decline-challenge-button","decline_challenge_button",{"tag":383,"callback":384,"file":378,"line":249},"trn-delete-challenge-button","delete_challenge_button",{"tag":386,"callback":387,"file":388,"line":249},"trn-team-requests-list","team_requests_list","includes\\shortcodes\\class-shortcodes.php",{"tag":390,"callback":391,"file":388,"line":233},"trn-team-invitations-list","team_invitations_list",{"tag":393,"callback":394,"file":388,"line":252},"trn-email-team-invitation-form","email_team_invitation_form",{"tag":396,"callback":397,"file":388,"line":244},"trn-ladder-registration-button","ladder_registration_button",{"tag":399,"callback":400,"file":388,"line":216},"trn-tournament-registration-button","tournament_registration_button",{"tag":402,"callback":403,"file":388,"line":219},"trn-invite-player-to-team","invite_player",{"tag":405,"callback":406,"file":388,"line":407},"trn-my-team-invitations-list","my_team_invitations_list",40,{"tag":409,"callback":410,"file":388,"line":411},"trn-my-team-requests-list","my_team_requests_list",41,{"tag":413,"callback":414,"file":388,"line":199},"trn-upcoming-tournaments","upcoming_tournaments",{"tag":416,"callback":417,"file":388,"line":186},"trn-dispute-match-button","dispute_match_button",{"tag":419,"callback":420,"file":388,"line":421},"trn-career-record","career_record",44,{"tag":423,"callback":424,"file":388,"line":204},"trn-brackets","brackets",{"tag":426,"callback":427,"file":428,"line":239},"trn-teams-list-table","teams_list_table","includes\\shortcodes\\class-table-shortcodes.php",{"tag":430,"callback":431,"file":428,"line":194},"trn-players-list-table","players_list_table",{"tag":433,"callback":434,"file":428,"line":249},"trn-challenges-list-table","challenges_list_table",{"tag":436,"callback":437,"file":428,"line":233},"trn-matches-list-table","matches_list_table",{"tag":439,"callback":440,"file":428,"line":252},"trn-ladder-matches-list-table","ladder_matches_list_table",{"tag":442,"callback":443,"file":428,"line":244},"trn-ladder-standings-list-table","ladder_standings_list_table",{"tag":445,"callback":446,"file":428,"line":216},"trn-tournament-matches-list-table","tournament_matches_list_table",{"tag":448,"callback":449,"file":428,"line":219},"trn-competitor-ladders-list-table","competitor_ladders_list_table",{"tag":451,"callback":452,"file":428,"line":407},"trn-competitor-tournaments-list-table","competitor_tournaments_list_table",{"tag":454,"callback":455,"file":428,"line":411},"trn-player-teams-list-table","player_teams_list_table",{"tag":457,"callback":458,"file":428,"line":199},"trn-competitor-match-list-table","competitor_match_list_table",{"tag":460,"callback":461,"file":428,"line":186},"trn-team-roster-table","team_roster_table",[],29,{"dangerousFunctions":465,"sqlUsage":466,"outputEscaping":523,"fileOperations":652,"externalRequests":27,"nonceChecks":407,"capabilityChecks":653,"bundledLibraries":654},[],{"prepared":467,"raw":468,"locations":469},1065,23,[470,473,476,478,482,485,487,489,491,493,495,498,499,501,503,506,508,510,512,515,517,519,521],{"file":185,"line":471,"context":472},303,"$wpdb->query() with variable interpolation",{"file":196,"line":474,"context":475},257,"$wpdb->get_results() with variable interpolation",{"file":209,"line":477,"context":475},225,{"file":479,"line":480,"context":481},"includes\\classes\\class-tournamatch-ladder-list-table.php",72,"$wpdb->get_var() with variable interpolation",{"file":483,"line":484,"context":481},"includes\\classes\\class-tournamatch-tournament-list-table.php",73,{"file":236,"line":486,"context":481},363,{"file":241,"line":488,"context":475},160,{"file":254,"line":490,"context":481},143,{"file":256,"line":492,"context":475},413,{"file":260,"line":494,"context":475},196,{"file":260,"line":496,"context":497},238,"$wpdb->get_row() with variable interpolation",{"file":262,"line":486,"context":475},{"file":264,"line":500,"context":481},177,{"file":273,"line":502,"context":481},264,{"file":504,"line":505,"context":481},"includes\\rules\\class-cannot-move-default-rank.php",56,{"file":507,"line":505,"context":481},"includes\\rules\\class-cannot-remove-default-rank.php",{"file":428,"line":509,"context":475},1049,{"file":277,"line":511,"context":475},119,{"file":294,"line":513,"context":514},890,"$wpdb->get_col() with variable interpolation",{"file":294,"line":516,"context":475},895,{"file":294,"line":518,"context":472},3810,{"file":294,"line":520,"context":475},4169,{"file":522,"line":252,"context":472},"uninstall.php",{"escaped":524,"rawEcho":525,"locations":526},1171,65,[527,530,532,534,535,537,539,541,543,545,547,550,552,554,557,559,561,563,565,567,570,571,573,575,578,580,581,583,584,585,587,590,592,594,595,596,598,600,602,604,605,607,608,609,610,612,614,616,618,620,622,624,626,628,630,632,634,636,638,640,642,644,646,648,650],{"file":196,"line":528,"context":529},144,"raw output",{"file":201,"line":531,"context":529},551,{"file":209,"line":533,"context":529},161,{"file":288,"line":284,"context":529},{"file":288,"line":536,"context":529},123,{"file":288,"line":538,"context":529},125,{"file":288,"line":540,"context":529},127,{"file":288,"line":542,"context":529},129,{"file":288,"line":544,"context":529},132,{"file":546,"line":190,"context":529},"templates\\archive-trn-challenge.php",{"file":548,"line":549,"context":529},"templates\\archive-trn-match.php",20,{"file":551,"line":549,"context":529},"templates\\archive-trn-player.php",{"file":553,"line":233,"context":529},"templates\\archive-trn-team.php",{"file":555,"line":556,"context":529},"templates\\page-trn-report-dashboard.php",103,{"file":555,"line":558,"context":529},229,{"file":560,"line":463,"context":529},"templates\\partials\\scheduled-matches-table.php",{"file":562,"line":480,"context":529},"templates\\single-trn-challenge.php",{"file":562,"line":564,"context":529},75,{"file":562,"line":566,"context":529},78,{"file":568,"line":569,"context":529},"templates\\single-trn-ladder.php",83,{"file":568,"line":162,"context":529},{"file":568,"line":572,"context":529},105,{"file":568,"line":574,"context":529},107,{"file":576,"line":577,"context":529},"templates\\single-trn-match.php",51,{"file":576,"line":579,"context":529},53,{"file":576,"line":295,"context":529},{"file":576,"line":582,"context":529},70,{"file":576,"line":480,"context":529},{"file":576,"line":26,"context":529},{"file":576,"line":586,"context":529},86,{"file":588,"line":589,"context":529},"templates\\single-trn-player-dashboard.php",47,{"file":588,"line":591,"context":529},57,{"file":593,"line":207,"context":529},"templates\\single-trn-player.php",{"file":593,"line":579,"context":529},{"file":593,"line":564,"context":529},{"file":593,"line":597,"context":529},81,{"file":593,"line":599,"context":529},87,{"file":593,"line":601,"context":529},93,{"file":603,"line":577,"context":529},"templates\\single-trn-team.php",{"file":603,"line":572,"context":529},{"file":603,"line":606,"context":529},126,{"file":603,"line":542,"context":529},{"file":603,"line":544,"context":529},{"file":603,"line":228,"context":529},{"file":603,"line":611,"context":529},148,{"file":603,"line":613,"context":529},154,{"file":615,"line":586,"context":529},"templates\\single-trn-tournament.php",{"file":615,"line":617,"context":529},145,{"file":294,"line":619,"context":529},312,{"file":294,"line":621,"context":529},2502,{"file":294,"line":623,"context":529},2504,{"file":294,"line":625,"context":529},2516,{"file":294,"line":627,"context":529},2518,{"file":294,"line":629,"context":529},2530,{"file":294,"line":631,"context":529},2536,{"file":294,"line":633,"context":529},2550,{"file":294,"line":635,"context":529},2552,{"file":294,"line":637,"context":529},2556,{"file":294,"line":639,"context":529},2701,{"file":294,"line":641,"context":529},2991,{"file":294,"line":643,"context":529},3214,{"file":294,"line":645,"context":529},3478,{"file":294,"line":647,"context":529},4024,{"file":294,"line":649,"context":529},4025,{"file":294,"line":651,"context":529},4421,3,58,[655],{"name":656,"version":37,"knownCves":657},"DataTables",[],[659,677,685,704,716,732,748,764,778,787,798,827,840,854,866,879,890,902,913,928,939,952,963,978,992,1001,1026,1095,1157,1187,1212,1239],{"entryPoint":660,"graph":661,"unsanitizedCount":102,"severity":676},"settings (admin\\class-admin.php:448)",{"nodes":662,"edges":674},[663,668],{"id":664,"type":665,"label":666,"file":185,"line":667},"n0","source","$_GET (x3)",726,{"id":669,"type":670,"label":671,"file":185,"line":672,"wp_function":673},"n1","sink","echo() [XSS]",749,"echo",[675],{"from":664,"to":669,"sanitized":371},"low",{"entryPoint":678,"graph":679,"unsanitizedCount":102,"severity":676},"\u003Cclass-admin> (admin\\class-admin.php:0)",{"nodes":680,"edges":683},[681,682],{"id":664,"type":665,"label":666,"file":185,"line":667},{"id":669,"type":670,"label":671,"file":185,"line":672,"wp_function":673},[684],{"from":664,"to":669,"sanitized":371},{"entryPoint":686,"graph":687,"unsanitizedCount":102,"severity":676},"games (admin\\class-game.php:64)",{"nodes":688,"edges":701},[689,692,695,698],{"id":664,"type":665,"label":690,"file":189,"line":691},"$_GET",91,{"id":669,"type":670,"label":693,"file":189,"line":123,"wp_function":694},"get_row() [SQLi]","get_row",{"id":696,"type":665,"label":697,"file":189,"line":691},"n2","$_GET (x2)",{"id":699,"type":670,"label":671,"file":189,"line":700,"wp_function":673},"n3",120,[702,703],{"from":664,"to":669,"sanitized":371},{"from":696,"to":699,"sanitized":371},{"entryPoint":705,"graph":706,"unsanitizedCount":102,"severity":676},"pre_headers (admin\\class-game.php:330)",{"nodes":707,"edges":714},[708,710],{"id":664,"type":665,"label":690,"file":189,"line":709},340,{"id":669,"type":670,"label":711,"file":189,"line":712,"wp_function":713},"query() [SQLi]",342,"query",[715],{"from":664,"to":669,"sanitized":371},{"entryPoint":717,"graph":718,"unsanitizedCount":102,"severity":676},"\u003Cclass-game> (admin\\class-game.php:0)",{"nodes":719,"edges":728},[720,721,722,723,724,726],{"id":664,"type":665,"label":690,"file":189,"line":691},{"id":669,"type":670,"label":693,"file":189,"line":123,"wp_function":694},{"id":696,"type":665,"label":697,"file":189,"line":691},{"id":699,"type":670,"label":671,"file":189,"line":700,"wp_function":673},{"id":725,"type":665,"label":690,"file":189,"line":709},"n4",{"id":727,"type":670,"label":711,"file":189,"line":712,"wp_function":713},"n5",[729,730,731],{"from":664,"to":669,"sanitized":371},{"from":696,"to":699,"sanitized":371},{"from":725,"to":727,"sanitized":371},{"entryPoint":733,"graph":734,"unsanitizedCount":102,"severity":676},"ladders (admin\\class-ladder.php:89)",{"nodes":735,"edges":745},[736,738,740,741],{"id":664,"type":665,"label":690,"file":196,"line":737},113,{"id":669,"type":670,"label":693,"file":196,"line":739,"wp_function":694},114,{"id":696,"type":665,"label":690,"file":196,"line":737},{"id":699,"type":670,"label":742,"file":196,"line":743,"wp_function":744},"get_var() [SQLi]",115,"get_var",[746,747],{"from":664,"to":669,"sanitized":371},{"from":696,"to":699,"sanitized":371},{"entryPoint":749,"graph":750,"unsanitizedCount":102,"severity":676},"pre_headers (admin\\class-ladder.php:182)",{"nodes":751,"edges":761},[752,754,756,759],{"id":664,"type":665,"label":690,"file":196,"line":753},192,{"id":669,"type":670,"label":693,"file":196,"line":755,"wp_function":694},194,{"id":696,"type":665,"label":757,"file":196,"line":758},"$_GET (x4)",217,{"id":699,"type":670,"label":711,"file":196,"line":760,"wp_function":713},219,[762,763],{"from":664,"to":669,"sanitized":371},{"from":696,"to":699,"sanitized":371},{"entryPoint":765,"graph":766,"unsanitizedCount":102,"severity":676},"\u003Cclass-ladder> (admin\\class-ladder.php:0)",{"nodes":767,"edges":774},[768,769,770,771,772,773],{"id":664,"type":665,"label":697,"file":196,"line":737},{"id":669,"type":670,"label":693,"file":196,"line":739,"wp_function":694},{"id":696,"type":665,"label":690,"file":196,"line":737},{"id":699,"type":670,"label":742,"file":196,"line":743,"wp_function":744},{"id":725,"type":665,"label":757,"file":196,"line":758},{"id":727,"type":670,"label":711,"file":196,"line":760,"wp_function":713},[775,776,777],{"from":664,"to":669,"sanitized":371},{"from":696,"to":699,"sanitized":371},{"from":725,"to":727,"sanitized":371},{"entryPoint":779,"graph":780,"unsanitizedCount":102,"severity":676},"update (admin\\class-matche.php:79)",{"nodes":781,"edges":785},[782,784],{"id":664,"type":665,"label":783,"file":201,"line":12},"$_GET (x6)",{"id":669,"type":670,"label":693,"file":201,"line":162,"wp_function":694},[786],{"from":664,"to":669,"sanitized":371},{"entryPoint":788,"graph":789,"unsanitizedCount":102,"severity":676},"save (admin\\class-matche.php:167)",{"nodes":790,"edges":796},[791,794],{"id":664,"type":665,"label":792,"file":201,"line":793},"$_REQUEST",172,{"id":669,"type":670,"label":693,"file":201,"line":795,"wp_function":694},179,[797],{"from":664,"to":669,"sanitized":371},{"entryPoint":799,"graph":800,"unsanitizedCount":102,"severity":676},"ladder_matches (admin\\class-matche.php:321)",{"nodes":801,"edges":822},[802,805,807,809,813,814,816,819],{"id":664,"type":665,"label":803,"file":201,"line":804},"$_REQUEST (x6)",366,{"id":669,"type":670,"label":693,"file":201,"line":806,"wp_function":694},370,{"id":696,"type":665,"label":808,"file":201,"line":804},"$_REQUEST (x2)",{"id":699,"type":670,"label":810,"file":201,"line":811,"wp_function":812},"get_results() [SQLi]",372,"get_results",{"id":725,"type":665,"label":792,"file":201,"line":804},{"id":727,"type":670,"label":671,"file":201,"line":815,"wp_function":673},416,{"id":817,"type":665,"label":783,"file":201,"line":818},"n6",483,{"id":820,"type":670,"label":693,"file":201,"line":821,"wp_function":694},"n7",484,[823,824,825,826],{"from":664,"to":669,"sanitized":371},{"from":696,"to":699,"sanitized":371},{"from":725,"to":727,"sanitized":371},{"from":817,"to":820,"sanitized":371},{"entryPoint":828,"graph":829,"unsanitizedCount":102,"severity":676},"tournaments (admin\\class-tournament.php:89)",{"nodes":830,"edges":837},[831,832,834,835],{"id":664,"type":665,"label":690,"file":209,"line":542},{"id":669,"type":670,"label":693,"file":209,"line":833,"wp_function":694},130,{"id":696,"type":665,"label":690,"file":209,"line":542},{"id":699,"type":670,"label":742,"file":209,"line":836,"wp_function":744},131,[838,839],{"from":664,"to":669,"sanitized":371},{"from":696,"to":699,"sanitized":371},{"entryPoint":841,"graph":842,"unsanitizedCount":102,"severity":676},"\u003Cladder-competitors> (admin\\ladder-competitors.php:0)",{"nodes":843,"edges":851},[844,847,849,850],{"id":664,"type":665,"label":690,"file":845,"line":846},"admin\\ladder-competitors.php",18,{"id":669,"type":670,"label":693,"file":845,"line":848,"wp_function":694},24,{"id":696,"type":665,"label":690,"file":845,"line":846},{"id":699,"type":670,"label":671,"file":845,"line":566,"wp_function":673},[852,853],{"from":664,"to":669,"sanitized":371},{"from":696,"to":699,"sanitized":371},{"entryPoint":855,"graph":856,"unsanitizedCount":102,"severity":676},"\u003Ctournament-registrations> (admin\\tournament-registrations.php:0)",{"nodes":857,"edges":863},[858,860,861,862],{"id":664,"type":665,"label":690,"file":859,"line":846},"admin\\tournament-registrations.php",{"id":669,"type":670,"label":693,"file":859,"line":848,"wp_function":694},{"id":696,"type":665,"label":690,"file":859,"line":846},{"id":699,"type":670,"label":671,"file":859,"line":566,"wp_function":673},[864,865],{"from":664,"to":669,"sanitized":371},{"from":696,"to":699,"sanitized":371},{"entryPoint":867,"graph":868,"unsanitizedCount":102,"severity":676},"prepare_items (includes\\classes\\class-tournamatch-game-list-table.php:62)",{"nodes":869,"edges":876},[870,872,873,874],{"id":664,"type":665,"label":792,"file":871,"line":484},"includes\\classes\\class-tournamatch-game-list-table.php",{"id":669,"type":670,"label":742,"file":871,"line":597,"wp_function":744},{"id":696,"type":665,"label":792,"file":871,"line":484},{"id":699,"type":670,"label":810,"file":871,"line":875,"wp_function":812},109,[877,878],{"from":664,"to":669,"sanitized":371},{"from":696,"to":699,"sanitized":371},{"entryPoint":880,"graph":881,"unsanitizedCount":102,"severity":676},"\u003Cclass-tournamatch-game-list-table> (includes\\classes\\class-tournamatch-game-list-table.php:0)",{"nodes":882,"edges":887},[883,884,885,886],{"id":664,"type":665,"label":792,"file":871,"line":484},{"id":669,"type":670,"label":742,"file":871,"line":597,"wp_function":744},{"id":696,"type":665,"label":792,"file":871,"line":484},{"id":699,"type":670,"label":810,"file":871,"line":875,"wp_function":812},[888,889],{"from":664,"to":669,"sanitized":371},{"from":696,"to":699,"sanitized":371},{"entryPoint":891,"graph":892,"unsanitizedCount":102,"severity":676},"prepare_items (includes\\classes\\class-tournamatch-ladder-list-table.php:109)",{"nodes":893,"edges":899},[894,895,896,897],{"id":664,"type":665,"label":792,"file":479,"line":700},{"id":669,"type":670,"label":742,"file":479,"line":228,"wp_function":744},{"id":696,"type":665,"label":792,"file":479,"line":700},{"id":699,"type":670,"label":810,"file":479,"line":898,"wp_function":812},183,[900,901],{"from":664,"to":669,"sanitized":371},{"from":696,"to":699,"sanitized":371},{"entryPoint":903,"graph":904,"unsanitizedCount":102,"severity":676},"\u003Cclass-tournamatch-ladder-list-table> (includes\\classes\\class-tournamatch-ladder-list-table.php:0)",{"nodes":905,"edges":910},[906,907,908,909],{"id":664,"type":665,"label":792,"file":479,"line":700},{"id":669,"type":670,"label":742,"file":479,"line":228,"wp_function":744},{"id":696,"type":665,"label":792,"file":479,"line":700},{"id":699,"type":670,"label":810,"file":479,"line":898,"wp_function":812},[911,912],{"from":664,"to":669,"sanitized":371},{"from":696,"to":699,"sanitized":371},{"entryPoint":914,"graph":915,"unsanitizedCount":102,"severity":676},"prepare_items (includes\\classes\\class-tournamatch-match-list-table.php:184)",{"nodes":916,"edges":925},[917,920,922,923],{"id":664,"type":665,"label":792,"file":918,"line":919},"includes\\classes\\class-tournamatch-match-list-table.php",195,{"id":669,"type":670,"label":742,"file":918,"line":921,"wp_function":744},234,{"id":696,"type":665,"label":792,"file":918,"line":919},{"id":699,"type":670,"label":810,"file":918,"line":924,"wp_function":812},321,[926,927],{"from":664,"to":669,"sanitized":371},{"from":696,"to":699,"sanitized":371},{"entryPoint":929,"graph":930,"unsanitizedCount":102,"severity":676},"\u003Cclass-tournamatch-match-list-table> (includes\\classes\\class-tournamatch-match-list-table.php:0)",{"nodes":931,"edges":936},[932,933,934,935],{"id":664,"type":665,"label":792,"file":918,"line":919},{"id":669,"type":670,"label":742,"file":918,"line":921,"wp_function":744},{"id":696,"type":665,"label":792,"file":918,"line":919},{"id":699,"type":670,"label":810,"file":918,"line":924,"wp_function":812},[937,938],{"from":664,"to":669,"sanitized":371},{"from":696,"to":699,"sanitized":371},{"entryPoint":940,"graph":941,"unsanitizedCount":102,"severity":676},"prepare_items (includes\\classes\\class-tournamatch-tournament-list-table.php:110)",{"nodes":942,"edges":949},[943,945,946,947],{"id":664,"type":665,"label":792,"file":483,"line":944},121,{"id":669,"type":670,"label":742,"file":483,"line":528,"wp_function":744},{"id":696,"type":665,"label":792,"file":483,"line":944},{"id":699,"type":670,"label":810,"file":483,"line":948,"wp_function":812},186,[950,951],{"from":664,"to":669,"sanitized":371},{"from":696,"to":699,"sanitized":371},{"entryPoint":953,"graph":954,"unsanitizedCount":102,"severity":676},"\u003Cclass-tournamatch-tournament-list-table> (includes\\classes\\class-tournamatch-tournament-list-table.php:0)",{"nodes":955,"edges":960},[956,957,958,959],{"id":664,"type":665,"label":792,"file":483,"line":944},{"id":669,"type":670,"label":742,"file":483,"line":528,"wp_function":744},{"id":696,"type":665,"label":792,"file":483,"line":944},{"id":699,"type":670,"label":810,"file":483,"line":948,"wp_function":812},[961,962],{"from":664,"to":669,"sanitized":371},{"from":696,"to":699,"sanitized":371},{"entryPoint":964,"graph":965,"unsanitizedCount":102,"severity":676},"\u003Carchive-trn-ladder> (templates\\archive-trn-ladder.php:0)",{"nodes":966,"edges":975},[967,969,972],{"id":664,"type":665,"label":690,"file":968,"line":549},"templates\\archive-trn-ladder.php",{"id":669,"type":970,"label":971,"file":968,"line":549},"transform","→ trn_get_ladders()",{"id":696,"type":670,"label":810,"file":973,"line":974,"wp_function":812},"includes\\data-access.php",469,[976,977],{"from":664,"to":669,"sanitized":368},{"from":669,"to":696,"sanitized":371},{"entryPoint":979,"graph":980,"unsanitizedCount":102,"severity":676},"\u003Carchive-trn-tournament> (templates\\archive-trn-tournament.php:0)",{"nodes":981,"edges":989},[982,985,987],{"id":664,"type":665,"label":690,"file":983,"line":984},"templates\\archive-trn-tournament.php",22,{"id":669,"type":970,"label":986,"file":983,"line":984},"→ trn_get_tournaments()",{"id":696,"type":670,"label":810,"file":973,"line":988,"wp_function":812},707,[990,991],{"from":664,"to":669,"sanitized":368},{"from":669,"to":696,"sanitized":371},{"entryPoint":993,"graph":994,"unsanitizedCount":102,"severity":676},"\u003Csingle-trn-challenge-create> (templates\\single-trn-challenge-create.php:0)",{"nodes":995,"edges":999},[996,998],{"id":664,"type":665,"label":792,"file":997,"line":549},"templates\\single-trn-challenge-create.php",{"id":669,"type":670,"label":671,"file":997,"line":204,"wp_function":673},[1000],{"from":664,"to":669,"sanitized":371},{"entryPoint":1002,"graph":1003,"unsanitizedCount":102,"severity":676},"\u003Ctournamatch> (tournamatch.php:0)",{"nodes":1004,"edges":1022},[1005,1008,1012,1015,1017,1020],{"id":664,"type":665,"label":1006,"file":294,"line":1007},"$_SERVER['REQUEST_URI']",1797,{"id":669,"type":670,"label":1009,"file":294,"line":1010,"wp_function":1011},"wp_redirect() [Open Redirect]",1790,"wp_redirect",{"id":696,"type":665,"label":1013,"file":294,"line":1014},"$_POST",2928,{"id":699,"type":670,"label":693,"file":294,"line":1016,"wp_function":694},2931,{"id":725,"type":665,"label":1018,"file":294,"line":1019},"$_POST (x2)",2930,{"id":727,"type":670,"label":711,"file":294,"line":1021,"wp_function":713},2935,[1023,1024,1025],{"from":664,"to":669,"sanitized":371},{"from":696,"to":699,"sanitized":371},{"from":725,"to":727,"sanitized":371},{"entryPoint":1027,"graph":1028,"unsanitizedCount":1093,"severity":1094},"pre_headers (admin\\class-matche.php:632)",{"nodes":1029,"edges":1080},[1030,1032,1034,1037,1039,1041,1043,1045,1047,1050,1053,1056,1059,1062,1065,1068,1071,1074,1077],{"id":664,"type":665,"label":757,"file":201,"line":1031},642,{"id":669,"type":670,"label":711,"file":201,"line":1033,"wp_function":713},644,{"id":696,"type":665,"label":1035,"file":201,"line":1036},"$_GET (x5)",657,{"id":699,"type":670,"label":693,"file":201,"line":1038,"wp_function":694},660,{"id":725,"type":665,"label":697,"file":201,"line":1040},676,{"id":727,"type":970,"label":1042,"file":201,"line":1040},"→ update_tournament()",{"id":817,"type":670,"label":810,"file":294,"line":1044,"wp_function":812},781,{"id":820,"type":665,"label":697,"file":201,"line":1046},687,{"id":1048,"type":970,"label":1049,"file":201,"line":1046},"n8","→ update_career_wins()",{"id":1051,"type":670,"label":711,"file":294,"line":1052,"wp_function":713},"n9",594,{"id":1054,"type":665,"label":697,"file":201,"line":1055},"n10",688,{"id":1057,"type":970,"label":1058,"file":201,"line":1055},"n11","→ update_career_losses()",{"id":1060,"type":670,"label":711,"file":294,"line":1061,"wp_function":713},"n12",613,{"id":1063,"type":665,"label":690,"file":201,"line":1064},"n13",754,{"id":1066,"type":970,"label":1067,"file":201,"line":1064},"n14","→ update_ladder()",{"id":1069,"type":670,"label":711,"file":294,"line":1070,"wp_function":713},"n15",733,{"id":1072,"type":665,"label":697,"file":201,"line":1073},"n16",770,{"id":1075,"type":970,"label":1076,"file":201,"line":1073},"n17","→ update_career_draws()",{"id":1078,"type":670,"label":711,"file":294,"line":1079,"wp_function":713},"n18",632,[1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092],{"from":664,"to":669,"sanitized":371},{"from":696,"to":699,"sanitized":371},{"from":725,"to":727,"sanitized":368},{"from":727,"to":817,"sanitized":368},{"from":820,"to":1048,"sanitized":368},{"from":1048,"to":1051,"sanitized":368},{"from":1054,"to":1057,"sanitized":368},{"from":1057,"to":1060,"sanitized":368},{"from":1063,"to":1066,"sanitized":368},{"from":1066,"to":1069,"sanitized":368},{"from":1072,"to":1075,"sanitized":368},{"from":1075,"to":1078,"sanitized":368},9,"high",{"entryPoint":1096,"graph":1097,"unsanitizedCount":1093,"severity":1094},"\u003Cclass-matche> (admin\\class-matche.php:0)",{"nodes":1098,"edges":1140},[1099,1101,1102,1104,1105,1107,1109,1110,1111,1112,1113,1115,1117,1118,1119,1120,1121,1122,1123,1124,1126,1128,1130,1132,1134,1136,1138],{"id":664,"type":665,"label":1100,"file":201,"line":12},"$_GET (x17)",{"id":669,"type":670,"label":693,"file":201,"line":162,"wp_function":694},{"id":696,"type":665,"label":1103,"file":201,"line":793},"$_REQUEST (x7)",{"id":699,"type":670,"label":693,"file":201,"line":795,"wp_function":694},{"id":725,"type":665,"label":1106,"file":201,"line":793},"$_REQUEST (x3)",{"id":727,"type":670,"label":671,"file":201,"line":1108,"wp_function":673},347,{"id":817,"type":665,"label":808,"file":201,"line":804},{"id":820,"type":670,"label":810,"file":201,"line":811,"wp_function":812},{"id":1048,"type":665,"label":697,"file":201,"line":1031},{"id":1051,"type":670,"label":711,"file":201,"line":1033,"wp_function":713},{"id":1054,"type":665,"label":808,"file":201,"line":1114},174,{"id":1057,"type":670,"label":711,"file":201,"line":1116,"wp_function":713},674,{"id":1060,"type":665,"label":697,"file":201,"line":1040},{"id":1063,"type":970,"label":1042,"file":201,"line":1040},{"id":1066,"type":670,"label":810,"file":294,"line":1044,"wp_function":812},{"id":1069,"type":665,"label":697,"file":201,"line":1046},{"id":1072,"type":970,"label":1049,"file":201,"line":1046},{"id":1075,"type":670,"label":711,"file":294,"line":1052,"wp_function":713},{"id":1078,"type":665,"label":697,"file":201,"line":1055},{"id":1125,"type":970,"label":1058,"file":201,"line":1055},"n19",{"id":1127,"type":670,"label":711,"file":294,"line":1061,"wp_function":713},"n20",{"id":1129,"type":665,"label":690,"file":201,"line":1064},"n21",{"id":1131,"type":970,"label":1067,"file":201,"line":1064},"n22",{"id":1133,"type":670,"label":711,"file":294,"line":1070,"wp_function":713},"n23",{"id":1135,"type":665,"label":697,"file":201,"line":1073},"n24",{"id":1137,"type":970,"label":1076,"file":201,"line":1073},"n25",{"id":1139,"type":670,"label":711,"file":294,"line":1079,"wp_function":713},"n26",[1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156],{"from":664,"to":669,"sanitized":371},{"from":696,"to":699,"sanitized":371},{"from":725,"to":727,"sanitized":371},{"from":817,"to":820,"sanitized":371},{"from":1048,"to":1051,"sanitized":371},{"from":1054,"to":1057,"sanitized":371},{"from":1060,"to":1063,"sanitized":368},{"from":1063,"to":1066,"sanitized":368},{"from":1069,"to":1072,"sanitized":368},{"from":1072,"to":1075,"sanitized":368},{"from":1078,"to":1125,"sanitized":368},{"from":1125,"to":1127,"sanitized":368},{"from":1129,"to":1131,"sanitized":368},{"from":1131,"to":1133,"sanitized":368},{"from":1135,"to":1137,"sanitized":368},{"from":1137,"to":1139,"sanitized":368},{"entryPoint":1158,"graph":1159,"unsanitizedCount":28,"severity":1094},"pre_headers (admin\\class-tournament.php:398)",{"nodes":1160,"edges":1180},[1161,1163,1165,1167,1169,1170,1172,1173,1175,1177,1179],{"id":664,"type":665,"label":697,"file":209,"line":1162},408,{"id":669,"type":670,"label":693,"file":209,"line":1164,"wp_function":694},410,{"id":696,"type":665,"label":1035,"file":209,"line":1166},459,{"id":699,"type":670,"label":711,"file":209,"line":1168,"wp_function":713},461,{"id":725,"type":665,"label":792,"file":209,"line":818},{"id":727,"type":670,"label":693,"file":209,"line":1171,"wp_function":694},485,{"id":817,"type":665,"label":792,"file":209,"line":818},{"id":820,"type":670,"label":711,"file":209,"line":1174,"wp_function":713},487,{"id":1048,"type":665,"label":690,"file":209,"line":1176},438,{"id":1051,"type":970,"label":1178,"file":209,"line":1176},"→ initialize_tournament()",{"id":1054,"type":670,"label":810,"file":294,"line":516,"wp_function":812},[1181,1182,1183,1184,1185,1186],{"from":664,"to":669,"sanitized":371},{"from":696,"to":699,"sanitized":371},{"from":725,"to":727,"sanitized":371},{"from":817,"to":820,"sanitized":371},{"from":1048,"to":1051,"sanitized":368},{"from":1051,"to":1054,"sanitized":368},{"entryPoint":1188,"graph":1189,"unsanitizedCount":28,"severity":1094},"\u003Cclass-tournament> (admin\\class-tournament.php:0)",{"nodes":1190,"edges":1204},[1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203],{"id":664,"type":665,"label":666,"file":209,"line":542},{"id":669,"type":670,"label":693,"file":209,"line":833,"wp_function":694},{"id":696,"type":665,"label":690,"file":209,"line":542},{"id":699,"type":670,"label":742,"file":209,"line":836,"wp_function":744},{"id":725,"type":665,"label":1035,"file":209,"line":1166},{"id":727,"type":670,"label":711,"file":209,"line":1168,"wp_function":713},{"id":817,"type":665,"label":792,"file":209,"line":818},{"id":820,"type":670,"label":693,"file":209,"line":1171,"wp_function":694},{"id":1048,"type":665,"label":792,"file":209,"line":818},{"id":1051,"type":670,"label":711,"file":209,"line":1174,"wp_function":713},{"id":1054,"type":665,"label":690,"file":209,"line":1176},{"id":1057,"type":970,"label":1178,"file":209,"line":1176},{"id":1060,"type":670,"label":810,"file":294,"line":516,"wp_function":812},[1205,1206,1207,1208,1209,1210,1211],{"from":664,"to":669,"sanitized":371},{"from":696,"to":699,"sanitized":371},{"from":725,"to":727,"sanitized":371},{"from":817,"to":820,"sanitized":371},{"from":1048,"to":1051,"sanitized":371},{"from":1054,"to":1057,"sanitized":368},{"from":1057,"to":1060,"sanitized":368},{"entryPoint":1213,"graph":1214,"unsanitizedCount":652,"severity":1094},"\u003Csingle-trn-match-create> (templates\\single-trn-match-create.php:0)",{"nodes":1215,"edges":1232},[1216,1218,1220,1222,1223,1225,1227,1228,1230],{"id":664,"type":665,"label":792,"file":1217,"line":134},"templates\\single-trn-match-create.php",{"id":669,"type":970,"label":1219,"file":1217,"line":134},"→ trn_get_ladder()",{"id":696,"type":670,"label":693,"file":973,"line":1221,"wp_function":694},421,{"id":699,"type":665,"label":792,"file":1217,"line":252},{"id":725,"type":970,"label":1224,"file":1217,"line":252},"→ trn_get_scheduled_ladder_matches()",{"id":727,"type":670,"label":810,"file":973,"line":1226,"wp_function":812},973,{"id":817,"type":665,"label":792,"file":1217,"line":244},{"id":820,"type":970,"label":1229,"file":1217,"line":244},"→ trn_get_ladder_competitors()",{"id":1048,"type":670,"label":810,"file":973,"line":1231,"wp_function":812},585,[1233,1234,1235,1236,1237,1238],{"from":664,"to":669,"sanitized":368},{"from":669,"to":696,"sanitized":368},{"from":699,"to":725,"sanitized":368},{"from":725,"to":727,"sanitized":368},{"from":817,"to":820,"sanitized":368},{"from":820,"to":1048,"sanitized":368},{"entryPoint":1240,"graph":1241,"unsanitizedCount":652,"severity":1094},"\u003Csingle-trn-tournament-replace> (templates\\single-trn-tournament-replace.php:0)",{"nodes":1242,"edges":1264},[1243,1246,1247,1248,1250,1252,1254,1256,1258,1260,1262],{"id":664,"type":665,"label":666,"file":1244,"line":1245},"templates\\single-trn-tournament-replace.php",19,{"id":669,"type":670,"label":671,"file":1244,"line":421,"wp_function":673},{"id":696,"type":665,"label":690,"file":1244,"line":848},{"id":699,"type":970,"label":1249,"file":1244,"line":848},"→ trn_get_match()",{"id":725,"type":670,"label":693,"file":973,"line":1251,"wp_function":694},955,{"id":727,"type":665,"label":690,"file":1244,"line":1253},25,{"id":817,"type":970,"label":1255,"file":1244,"line":1253},"→ trn_get_tournament()",{"id":820,"type":670,"label":693,"file":973,"line":1257,"wp_function":694},724,{"id":1048,"type":665,"label":690,"file":1244,"line":1259},28,{"id":1051,"type":970,"label":1261,"file":1244,"line":1259},"→ trn_get_registered_competitors()",{"id":1054,"type":670,"label":810,"file":973,"line":1263,"wp_function":812},812,[1265,1266,1267,1268,1269,1270,1271],{"from":664,"to":669,"sanitized":371},{"from":696,"to":699,"sanitized":368},{"from":699,"to":725,"sanitized":368},{"from":727,"to":817,"sanitized":368},{"from":817,"to":820,"sanitized":368},{"from":1048,"to":1051,"sanitized":368},{"from":1051,"to":1054,"sanitized":368},{"summary":1273,"deductions":1274},"The Tournamatch plugin v4.7.0 exhibits a mixed security posture. While it demonstrates good practices in several areas, such as a high percentage of prepared SQL statements and properly escaped output, significant concerns remain.  The presence of two AJAX handlers without authentication checks is a notable weakness, directly contributing to a less secure attack surface. The taint analysis revealing six high-severity flows with unsanitized paths is particularly worrying, as these represent potential avenues for attackers to inject malicious code or data.  The plugin's vulnerability history, with four known CVEs and one still unpatched, further amplifies these concerns. The prevalence of Cross-Site Scripting (XSS) vulnerabilities in the past suggests a recurring issue with input sanitization or output encoding, which aligns with the high-severity taint flows identified.",[1275,1277,1280,1282],{"reason":1276,"points":153},"Unprotected AJAX handlers",{"reason":1278,"points":1279},"High severity unsanitized taint flows",15,{"reason":1281,"points":549},"Currently unpatched CVE",{"reason":1283,"points":1284},"Vulnerability history of XSS",5,"2026-03-16T20:37:01.684Z",{"wat":1287,"direct":1304},{"assetPaths":1288,"generatorPatterns":1295,"scriptPaths":1296,"versionParams":1297},[1289,1290,1291,1292,1293,1294],"\u002Fwp-content\u002Fplugins\u002Ftournamatch\u002Fassets\u002Fcss\u002Ffrontend.css","\u002Fwp-content\u002Fplugins\u002Ftournamatch\u002Fassets\u002Fcss\u002Fbackend.css","\u002Fwp-content\u002Fplugins\u002Ftournamatch\u002Fassets\u002Fjs\u002Ffrontend.js","\u002Fwp-content\u002Fplugins\u002Ftournamatch\u002Fassets\u002Fjs\u002Fadmin.js","\u002Fwp-content\u002Fplugins\u002Ftournamatch\u002Fassets\u002Fjs\u002Fvendor\u002Fjquery-ui.min.js","\u002Fwp-content\u002Fplugins\u002Ftournamatch\u002Fassets\u002Fjs\u002Fvendor\u002Ftinymce\u002Ftinymce.min.js",[],[1291,1292,1293,1294],[1298,1299,1300,1301,1302,1303],"tournamatch\u002Fassets\u002Fcss\u002Ffrontend.css?ver=","tournamatch\u002Fassets\u002Fcss\u002Fbackend.css?ver=","tournamatch\u002Fassets\u002Fjs\u002Ffrontend.js?ver=","tournamatch\u002Fassets\u002Fjs\u002Fadmin.js?ver=","tournamatch\u002Fassets\u002Fjs\u002Fvendor\u002Fjquery-ui.min.js?ver=","tournamatch\u002Fassets\u002Fjs\u002Fvendor\u002Ftinymce\u002Ftinymce.min.js?ver=",{"cssClasses":1305,"htmlComments":1316,"htmlAttributes":1317,"restEndpoints":1323,"jsGlobals":1331,"shortcodeOutput":1334},[1306,1307,1308,1309,1310,1311,1312,1313,1314,1315],"tournamatch-profile","tournamatch-ladder","tournamatch-tournament","tournamatch-match","tournamatch-team","tournamatch-game","tournamatch-widget","tournamatch-admin-list-table","tournamatch-challenge","tournamatch-registration",[],[1318,1319,1320,1321,1322],"data-trn-player-id","data-trn-match-id","data-trn-ladder-id","data-trn-tournament-id","data-trn-team-id",[1324,1325,1326,1327,1328,1329,1330],"\u002Fwp-json\u002Ftournamatch\u002Fv1\u002Fchallenges","\u002Fwp-json\u002Ftournamatch\u002Fv1\u002Fgames","\u002Fwp-json\u002Ftournamatch\u002Fv1\u002Fladders","\u002Fwp-json\u002Ftournamatch\u002Fv1\u002Fmatches","\u002Fwp-json\u002Ftournamatch\u002Fv1\u002Fteams","\u002Fwp-json\u002Ftournamatch\u002Fv1\u002Ftournaments","\u002Fwp-json\u002Ftournamatch\u002Fv1\u002Fplayers",[5,1332,1333],"trn_ajax_url","trn_vars",[1335,1336,1337,1338,1339,1340,1341,1342],"[tournamatch_profile]","[tournamatch_ladder]","[tournamatch_tournament]","[tournamatch_matches]","[tournamatch_teams]","[tournamatch_games]","[tournamatch_challenge_form]","[tournamatch_registration_form]"]