[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fmXkPeqwgpQyD4nXB0x8JHP5FG7ugo-t98EZ_r9UQsU8":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":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":13,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29,"vulnerabilities":30,"developer":31,"crawl_stats":28,"alternatives":36,"analysis":134,"fingerprints":1024},"football-predictor","Football Predictor","1.0.9","Anton Shulga","https:\u002F\u002Fprofiles.wordpress.org\u002Fbigtonny\u002F","\u003Cp>This plugin is designed to collect users predictions for each match in 2018 FIFA World Cup.\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","To manage and perform a marvel football competition for the FIFA World Cup 2018.",10,3794,100,1,"2025-09-02T08:30:00.000Z","6.8.5","6.3","",[20,21,22,23,24],"competition","fantasy-football","football","prediction","soccer","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Ffootball-predictor\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffootball-predictor.1.0.9.zip",0,null,"2026-03-15T15:16:48.613Z",[],{"slug":32,"display_name":7,"profile_url":8,"plugin_count":14,"total_installs":11,"avg_security_score":13,"avg_patch_time_days":33,"trust_score":34,"computed_at":35},"bigtonny",30,94,"2026-04-04T10:50:40.790Z",[37,53,70,92,114],{"slug":38,"name":39,"version":40,"author":41,"author_profile":42,"description":43,"short_description":44,"active_installs":11,"downloaded":45,"rating":13,"num_ratings":14,"last_updated":46,"tested_up_to":47,"requires_at_least":48,"requires_php":18,"tags":49,"homepage":50,"download_link":51,"security_score":52,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"euro-2012-predictor","Euro 2012 Predictor","0.9.1","ianhaycox","https:\u002F\u002Fprofiles.wordpress.org\u002Fianhaycox\u002F","\u003Cp>This plugin is designed to collect users predictions for each of the matches in the Euro 2012 championship.\u003C\u002Fp>\n\u003Cp>Users predict the score for each match in the group and knockout stages and are awarded points based on the\u003Cbr \u002F>\naccuracy of their prediction.\u003C\u002Fp>\n\u003Cp>Match results, user rankings and users’ predictions may also be displayed using this plugin.\u003C\u002Fp>\n\u003Cp>\u003Cem>Beta version – Plugin usable and just requires a little testing. In addition the translations below\u003Cbr \u002F>\nare not complete as they have been lifted from the World Cup Predictor\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>\u003Cem>Please report bugs etc. in the \u003Ca href=\"http:\u002F\u002Fianhaycox.com\u002Feuro2012\u002Fforums\" rel=\"nofollow ugc\">support forums\u003C\u002Fa>\u003C\u002Fem>\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 Euro 2012 game\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 – \u003Ca href=\"http:\u002F\u002Fwww.domingorobaina.com\u002F\" rel=\"nofollow ugc\">Domingo Robaina\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Brazilian Portuguese – Ed Torres\u003C\u002Fli>\n\u003Cli>Dutch – \u003Ca href=\"http:\u002F\u002Fwww.vakantiehuis-bretagne.nl\u002F\" rel=\"nofollow ugc\">Deborah Kerkhof\u003C\u002Fa>\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 – \u003Ca href=\"http:\u002F\u002Fwww.barbeerblues.com\u002F\" rel=\"nofollow ugc\">Oles Lukas\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Polish – Charls from Posen\u003C\u002Fli>\n\u003Cli>The .pot file is shipped for other translations – \u003Ca href=\"http:\u002F\u002Fianhaycox.com\u002Fcontact\" rel=\"nofollow ugc\">send them in\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Other translations may be available at \u003Ca href=\"http:\u002F\u002Fianhaycox.com\u002Feuro2012\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.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>More\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>If you do download this plugin please come back and rate it. For any rating less than 5 stars\u003Cbr \u002F>\nI would love to hear your feedback to help improve the plugin. Usability issues, bugs, enhancements\u003Cbr \u002F>\nand any other comments welcome to make this plugin better. \u003Ca href=\"http:\u002F\u002Fianhaycox.com\u002Feuro2012\u002Fforums\" rel=\"nofollow ugc\">Support\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>For a more comprehensive plugin to predict Football League matches using multiple leagues over many seasons\u003Cbr \u002F>\nvisit the \u003Ca href=\"http:\u002F\u002Fianhaycox.com\u002Ffantasy-football\u002F\" rel=\"nofollow ugc\">Fantasy Football plugin\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>See my \u003Ca href=\"http:\u002F\u002Fianhaycox.com\u002Fprogramming\u002F\" rel=\"nofollow ugc\">other plugins\u003C\u002Fa> and \u003Ca href=\"http:\u002F\u002Fianhaycox.com\u002F\" rel=\"nofollow ugc\">work\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Cp>After installation and activation verify that the teams and match schedules have been loaded.\u003C\u002Fp>\n\u003Cp>If no teams or matches are shown then consult the \u003Ca href=\"http:\u002F\u002Fianhaycox.com\u002Feuro2012\u002Fforums\" rel=\"nofollow ugc\">Support Forums\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>In order to manage the teams, matches etc. the logged in user must have the WordPress capability \u003Ccode>euro2012_manager\u003C\u002Fcode>. By default\u003Cbr \u002F>\nthe plugin adds this capability to the Administrator and Editor roles. If the Euro 2012 menu option is not available verify that\u003Cbr \u002F>\nthe currrent user has the \u003Ccode>euro2012_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>You may wish to update the URL setting via the Admin->Euro 2012 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>[euro-2012-predictor]\u003C\u002Fcode> to display an entry form. Other shortcodes are available to display prediction results\u003Cbr \u002F>\nand 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\u003Cbr \u002F>\npredictions.\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\u003Cbr \u002F>\nteam that has qualified to the next stage.  For example, if Greece win Group A, edit Match Number 25 and change the\u003Cbr \u002F>\nteam from ‘Winner Group A’ to ‘Greece’.\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 Modify the match and enter the final score in the Matches tab and check the ‘Match Finished’ box. The displayed group tables\u003Cbr \u002F>\nwill then update with the latest team standings.\u003C\u002Fp>\n\u003Cp>To update the users’ prediction scores, select the match in the ‘Predictions’ menu and click ‘Score Selected’. This updates the\u003Cbr \u002F>\nusers’ scores in the widget and 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>[euro-2012-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=1\u003C\u002Fcode>,\u003Cbr \u002F>\ne.g. \u003Ccode>[euro-2012-predictor group=1]\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>To display matches sorted by kickoff time, rather than by each stage, use the attribute \u003Ccode>kickoff=1\u003C\u002Fcode> and optionally a\u003Cbr \u002F>\nlimit, e.g. \u003Ccode>[euro-2012-predictor kickoff=1 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>[euro-2012-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>Knockout Table\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[euro-2012-predictor knockout=1]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Display the results of the knockout stages of the tournament. See \u003Ca href=\"https:\u002F\u002Fs.w.org\u002Fextend\u002Fplugins\u002Fworld-cup-predictor\u002Fscreenshot-6.png\" rel=\"nofollow ugc\">Screenshot\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Match Results\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[euro-2012-predictor results=1 stage=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.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Users Predictions\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[euro-2012-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.\u003Cbr \u002F>\nThis is to prevent users viewing each others predictions before the match has started.\u003C\u002Fp>\n\u003Cp>Use the option \u003Ccode>[euro-2012-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>[euro-2012-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>[euro-2012-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>[euro-2012-predictor show_total=1]\u003C\u002Fcode> without the table.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Rankings\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[euro-2012-predictor ranking=1 limit=999 avatar=1]\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>[euro-2012-predictor ranking=1 highlight=\"background:red;font-weight:bold\"]\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>To hide the display of a users’ avatar set avatar=0\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>[euro-2012-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>[euro-2012-predictor user=1]\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>Drag and drop the widget to a sidebar and configure.\u003C\u002Fp>\n\u003Ch4>Match dates and times\u003C\u002Fh4>\n\u003Cp>All match kickoff times and dates are displayed, by default, in match local time using the locale and date\u002Ftime formating\u003Cbr \u002F>\nsettings from Admin->Settings->General  Note during June, Poland is UTC+2 and Ukraine UTC+3\u003Cbr \u002F>\nIf you have changed the match times in the admin screens from UTC, this will NOT work correctly.\u003C\u002Fp>\n\u003Ch3>Convert kickoff times to local timezone\u003C\u002Fh3>\n\u003Cp>If you prefer to display kickoff times according to the user’s timezone then check the ‘Convert kickoff times to local timezone’\u003Cbr \u002F>\noption setting in the plugin Overview page.\u003C\u002Fp>\n\u003Cp>Note – The time is converted and displayed according to the settings in the user’s browser\u002Foperating system.\u003C\u002Fp>\n\u003Ch3>Toggle timezones\u003C\u002Fh3>\n\u003Cp>To allow a user to toggle between match local time and browser local time you need to add the following code in your\u003Cbr \u002F>\nblog post, or sidebar, that contains one of the plugin shortcodes: For example,\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003Cdiv class=\"tzcContainer\">\n\n  \u003Cp id=\"tzLocal\">Match times are currently set to match local time, please click here to convert to your time zone.\u003C\u002Fp>\n\n  \u003Cp id=\"tzClient\" style=\"display:none\">Match times are currently set to \u003Cstrong>your timezone\u003C\u002Fstrong>, please click here to revert to local time.\u003C\u002Fp>\n\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>\n 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 feature uncheck the setting ‘Convert kickoff times to blog timezone’ on the overview screen.\u003C\u002Fp>\n","Plugin to manage and present a fantasy football (soccer) competition for the UEFA 2012 Euro Championships",7744,"2012-12-17T09:43:00.000Z","3.5.2","3.1",[20,21,22,23,24],"http:\u002F\u002Fwww.ianhaycox.com\u002Feuro2012","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feuro-2012-predictor.0.9.1.zip",85,{"slug":54,"name":55,"version":56,"author":57,"author_profile":58,"description":59,"short_description":60,"active_installs":11,"downloaded":61,"rating":27,"num_ratings":27,"last_updated":62,"tested_up_to":63,"requires_at_least":64,"requires_php":18,"tags":65,"homepage":68,"download_link":69,"security_score":52,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"prediction-league","Prediction League","2.1.2","jimmi2times","https:\u002F\u002Fprofiles.wordpress.org\u002Fjimmi2times\u002F","\u003Cp>Prediction League provides a self hosted game for your readers. You can import, create and manage your competitions.\u003C\u002Fp>\n","Self hosted prediction league for your blog",2468,"2014-07-29T14:53:00.000Z","3.9.40","3.0",[66,22,54,24,67],"bracket-game","tippspiel","http:\u002F\u002Fwww.liga.parkdrei.de","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fprediction-league.zip",{"slug":71,"name":72,"version":73,"author":74,"author_profile":75,"description":76,"short_description":77,"active_installs":78,"downloaded":79,"rating":80,"num_ratings":81,"last_updated":82,"tested_up_to":83,"requires_at_least":84,"requires_php":85,"tags":86,"homepage":88,"download_link":89,"security_score":80,"vuln_count":90,"unpatched_count":27,"last_vuln_date":91,"fetched_at":29},"football-leagues-by-anwppro","AnWP Football Leagues","0.17.2","anwppro","https:\u002F\u002Fprofiles.wordpress.org\u002Fanwppro\u002F","\u003Cp>A complete solution for any ⚽ football site. Has a variety of unique features, powerful and flexible. Made with football in mind.\u003C\u002Fp>\n\u003Cp>⏩ For other team sports (🏉 rugby, 🏀 basketball, 🏐 volleyball, 🏏 cricket, ⚾ baseball, 🏒 ice hockey, handball) use my another plugin – \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fsports-leagues\u002F\" rel=\"ugc\">Sports Leagues\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>BASIC FEATURES\u003C\u002Fh4>\n\u003Cp>✅ intuitive admin UI\u003Cbr \u002F>\n✅ knockout, round-robin or even mixed and multistaged Competition supported\u003Cbr \u002F>\n✅ separate Club squad for every season (with player position, number, status)\u003Cbr \u002F>\n✅ Match lineups, substitutes, stats, events (goals, cards, substitute, penalty shootout), video, staff, referees\u003Cbr \u002F>\n✅ automatic Standing calculation (or manual)\u003Cbr \u002F>\n✅ automatic Player statistic calculation based on Match events (playing time, goals, cards, etc.)\u003Cbr \u002F>\n✅ initial data import for Clubs and Players with Excel-like spreadsheet\u003Cbr \u002F>\n✅ custom colors in Standing table (for Clubs or places)\u003Cbr \u002F>\n✅ flipped countdown timer for upcoming Matches\u003Cbr \u002F>\n✅ initial points (+ or -) for Clubs in Standing table\u003Cbr \u002F>\n✅ statistics at Player profile page\u003Cbr \u002F>\n✅ stadiums with photo, gallery, additional information, map, matches\u003Cbr \u002F>\n✅ widgets: Clubs, Matches, Cards, Next match, Player, Players (scorers or assistants), Standing table, Birthdays\u003Cbr \u002F>\n✅ 16 different shortcodes with UI helper in Classic Editor\u003Cbr \u002F>\n✅ template system (ability to override output layouts in your theme)\u003Cbr \u002F>\n✅ RTL support\u003Cbr \u002F>\n✅ works with most themes out of the box\u003Cbr \u002F>\n✅ fully translatable from the Admin part\u003Cbr \u002F>\n✅ tons of hooks for developers\u003Cbr \u002F>\n✅ staff, referees, coaches, stadiums and much more …\u003C\u002Fp>\n\u003Ch4>LINKS AND DOCUMENTATION\u003C\u002Fh4>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Ffl-core.anwp.pro\u002F\" rel=\"nofollow ugc\">Plugin Demo\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fanwp.pro\u002Fthe-most-powerfull-football-soccer-wordpress-plugin\u002F\" rel=\"nofollow ugc\">Plugin Overview\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fanwppro.userecho.com\u002Fcommunities\u002F1-football-leagues#module_9\" rel=\"nofollow ugc\">Online Documentation\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fanwppro.userecho.com\u002Fknowledge-bases\u002F2\u002Farticles\u002F70-start-guide\" rel=\"nofollow ugc\">Start Guide\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fanwppro.userecho.com\u002Fknowledge-bases\u002F11-fl-changelog\u002Fcategories\u002F28-basic-version\u002Farticles\" rel=\"nofollow ugc\">Extended Changelog\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fanwppro.userecho.com\u002Fknowledge-bases\u002F2-football-leagues\u002Fcategories\u002F25-shortcodes\u002Farticles\" rel=\"nofollow ugc\">Available Shortcodes\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>PREMIUM VERSION AVAILABLE\u003C\u002Fh4>\n\u003Cp>Want more? Football Leagues has also a \u003Ca href=\"https:\u002F\u002Fanwp.pro\u002Ffootball-leagues-premium\u002F\" rel=\"nofollow ugc\">Premium Addon\u003C\u002Fa> with many outstanding and unique features.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Ffl-premium.anwp.pro\u002F\" rel=\"nofollow ugc\">Premium Demo\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Ffootballan.com\u002F\" rel=\"nofollow ugc\">Real Website Example\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>PREMIUM FEATURES\u003C\u002Fh4>\n\u003Cp>🔶 Live Scores and Match Live Commentary with Events\u003Cbr \u002F>\n🔶 Match Timeline\u003Cbr \u002F>\n🔶 LIVE Search\u003Cbr \u002F>\n🔶 Club match formation\u003Cbr \u002F>\n🔶 Layout Builder (with tabs)\u003Cbr \u002F>\n🔶 Match scoreboard with image background\u003Cbr \u002F>\n🔶 Tournament Bracket\u003Cbr \u002F>\n🔶 Commentary Match section with new events\u003Cbr \u002F>\n🔶 Head to Head matches section in Match\u003Cbr \u002F>\n🔶 import data from external APIs (required a valid subscription)\u003Cbr \u002F>\n🔶 Standing – manual data edit\u003Cbr \u002F>\n🔶 Standing – columns order and visibility\u003Cbr \u002F>\n🔶 Standing – Conference support\u003Cbr \u002F>\n🔶 Standing – more ranking rules\u003Cbr \u002F>\n🔶 Matches Horizontal Scoreboard (shortcode)\u003Cbr \u002F>\n🔶 Competition – matchweeks as slides\u003Cbr \u002F>\n🔶 Results Matrix\u003Cbr \u002F>\n🔶 Standing Arrows – Dynamics of Ranking changes\u003Cbr \u002F>\n🔶 Widget – Next match extended (timer or flipped countdown)\u003Cbr \u002F>\n🔶 Widget – Competition Matchweek slides\u003Cbr \u002F>\n🔶 Widget – Calendar\u003Cbr \u002F>\n🔶 Calendar Slider\u003Cbr \u002F>\n🔶 Card Suspension\u003Cbr \u002F>\n🔶 Transfers\u003Cbr \u002F>\n🔶 \u003Ca href=\"https:\u002F\u002Fanwp.pro\u002Fseo-options-in-layout-builder-title-and-description\u002F\" rel=\"nofollow ugc\">Dynamic SEO Options\u003C\u002Fa>\u003Cbr \u002F>\n🔶 Send Game Report by Email\u003Cbr \u002F>\n🔶 \u003Ca href=\"https:\u002F\u002Fanwp.pro\u002Fdocs\u002Ffootball-leagues\u002Fpro-features\u002Fuser-timezone\u002F\" rel=\"nofollow ugc\">Automatic User’s Timezone\u003C\u002Fa>\u003Cbr \u002F>\n🔶 \u003Ca href=\"https:\u002F\u002Fanwp.pro\u002Fdocs\u002Ffootball-leagues\u002Fpro-features\u002Fai-writer\u002F\" rel=\"nofollow ugc\">AI Match Reports\u003C\u002Fa>\u003Cbr \u002F>\n🔶 \u003Ca href=\"https:\u002F\u002Fanwp.pro\u002Fdocs\u002Ffootball-leagues\u002Fpro-features\u002Fclub-history-historical-logos-names\u002F\" rel=\"nofollow ugc\">Club History\u003C\u002Fa> – Historical logos and names\u003Cbr \u002F>\n🔶 \u003Ca href=\"https:\u002F\u002Fanwp.pro\u002Fdocs\u002Ffootball-leagues\u002Fpro-features\u002Fentity-links\u002F\" rel=\"nofollow ugc\">Entity Links\u003C\u002Fa> – Custom links for clubs, players, and more\u003Cbr \u002F>\n🔶 Advanced Statistics\u003Cbr \u002F>\n🔶 Charts: Team Default Statistics & Goals per 15 min. interval\u003Cbr \u002F>\n🔶 Player stats section in Club\u003Cbr \u002F>\n🔶 Player & Referee stats panel\u003Cbr \u002F>\n🔶 24 different shortcodes\u003Cbr \u002F>\n🔶 premium support\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fanwp.pro\u002Ffootball-leagues-premium\u002F\" rel=\"nofollow ugc\">Find Out more about Premium Version\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fanwp.pro\u002Fthe-most-powerfull-football-soccer-wordpress-plugin\u002F\" rel=\"nofollow ugc\">Plugin Overview\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Translations included\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>English – default, always included\u003C\u002Fli>\n\u003Cli>Russian: Русский\u003C\u002Fli>\n\u003Cli>Polish: Polski (thanks to @forzza)\u003C\u002Fli>\n\u003Cli>Danish: Denmark (thanks to @cbdk)\u003C\u002Fli>\n\u003Cli>French: thanks to @belgofoot\u003C\u002Fli>\n\u003Cli>Italian: thanks to Paolo\u003C\u002Fli>\n\u003Cli>Slovenian: thanks to Nejc\u003C\u002Fli>\n\u003Cli>Romanian: thanks to Gabriel\u003C\u002Fli>\n\u003Cli>German: thanks to Jörg and Sven\u003C\u002Fli>\n\u003Cli>Greek: thanks to spirossm\u003C\u002Fli>\n\u003Cli>Spain: thanks to Màxim\u003C\u002Fli>\n\u003Cli>Brazil (Portuguese): thanks to Marcelo\u003C\u002Fli>\n\u003Cli>Dutch: thanks to Patrick\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>The plugin requires\u003C\u002Fh4>\n\u003Cblockquote>\n\u003Cp>PHP version 5.6 or greater\u003Cbr \u002F>\n  WordPress 4.7 or greater\u003Cbr \u002F>\n  \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcmb2\u002F\" title=\"CMB2\" rel=\"ugc\">CMB2 plugin\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fblockquote>\n","A complete solution for any football site. Knockout and round-robin competitions, player profiles and statistics, squads, standings and stadiums.",1000,72627,98,13,"2026-02-06T12:31:00.000Z","6.9.4","5.9","7.4",[22,24,87],"sport","https:\u002F\u002Fanwppro.userecho.com\u002Fcommunities\u002F1-football-leagues","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffootball-leagues-by-anwppro.0.17.2.zip",2,"2025-08-11 00:00:00",{"slug":93,"name":94,"version":95,"author":96,"author_profile":97,"description":98,"short_description":99,"active_installs":100,"downloaded":101,"rating":80,"num_ratings":102,"last_updated":103,"tested_up_to":16,"requires_at_least":104,"requires_php":85,"tags":105,"homepage":109,"download_link":110,"security_score":111,"vuln_count":112,"unpatched_count":27,"last_vuln_date":113,"fetched_at":29},"football-pool","Football Pool","2.13.1","AntoineH","https:\u002F\u002Fprofiles.wordpress.org\u002Fantoineh\u002F","\u003Cp>This plugin adds a fantasy sports pool to your blog. Visitors of your website can predict outcomes of matches and earn extra points with bonus questions. Every player can view scores and charts of the other pool contenders.\u003C\u002Fp>\n\u003Cp>The plugin installs some custom tables in the database and includes match information for the UEFA 2024 Championship, but it can be easily updated with match info for other championships or sports. \u003Cem>Note\u003C\u002Fem>: deactivating the plugin may delete all plugin data from your database. To avoid this, make sure the “keep data on uninstall” option is enabled in the settings (it’s on by default since version 2.3.1).\u003C\u002Fp>\n\u003Cp>I originally coded this pool in PHP as a standalone website for the UEFA 2000 championship and rewrote it several times for every European Championship and World Cup since. I kept adding features every year. In 2012, I turned it into a WordPress plugin and uploaded it to the plugin directory. I hope you enjoy it.\u003C\u002Fp>\n\u003Cp>A special thank you to everyone who donated, helped translate, reported bugs, or contributed in any other way to improving the plugin!\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Users can predict match outcomes.\u003C\u002Fli>\n\u003Cli>Automatic calculation of the pool ranking, or define a custom ranking for a group of matches.\u003C\u002Fli>\n\u003Cli>You can add bonus questions for extra fun (single answer and multiple choice).\u003C\u002Fli>\n\u003Cli>Add your own teams and match data for other competitions.\u003C\u002Fli>\n\u003Cli>Import or export game schedules.\u003C\u002Fli>\n\u003Cli>Automatically calculate championship standings.\u003C\u002Fli>\n\u003Cli>Flexible scoring options.\u003C\u002Fli>\n\u003Cli>Built-in pages and shortcodes to display the pool on your blog.\u003C\u002Fli>\n\u003Cli>Optional user leagues.\u003C\u002Fli>\n\u003Cli>Score charts showing player progress and comparisons (requires separate Highcharts API download).\u003C\u002Fli>\n\u003Cli>Widgets and shortcodes to display match and pool info.\u003C\u002Fli>\n\u003Cli>Extra info pages for venues and teams.\u003C\u002Fli>\n\u003Cli>Add custom functionality with filters and actions.\u003C\u002Fli>\n\u003Cli>WP-CLI support for ranking calculations (faster than admin-side calculations).\u003C\u002Fli>\n\u003Cli>WP-CLI support for importing match results from a CSV file.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Documentation\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>The plugin includes a detailed help file in the admin panel. For a step-by-step tutorial, check out the \u003Ca href=\"https:\u002F\u002Fwpsimplehacks.com\u002Fhow-to-create-a-football-pool-site-with-wordpress\u002F\" rel=\"nofollow ugc\">guide by Janek from WP Simple Hacks\u003C\u002Fa>. He even made a video explaining how to set up the plugin.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Other Notes\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Requires WordPress 5.3+, PHP 7.4+, and jQuery 1.4.3+.\u003C\u002Fli>\n\u003Cli>For charts, download the \u003Ca href=\"http:\u002F\u002Fwww.highcharts.com\u002Fdownload\" rel=\"nofollow ugc\">Highcharts API\u003C\u002Fa> (see the installation instructions or the help page in the admin).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>If you find bugs, please report them in the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Ffootball-pool\" rel=\"ugc\">support forum\u003C\u002Fa>. If you like the plugin, a rating on \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Ffootball-pool\u002F\" rel=\"ugc\">WordPress.org\u003C\u002Fa> would be much appreciated!\u003C\u002Fp>\n\u003Ch3>Localizations\u003C\u002Fh3>\n\u003Cp>If you’d like to help translate the plugin into another language or keep existing translations up to date, head over to the plugin’s page on \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Ffootball-pool\" rel=\"nofollow ugc\">translate.wordpress.org\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Be sure to read the \u003Ca href=\"https:\u002F\u002Fmake.wordpress.org\u002Fpolyglots\u002Fhandbook\u002Ftranslating\u002Fafter-your-contribution\u002F\" rel=\"nofollow ugc\">After your contribution\u003C\u002Fa> guide to understand how translations get reviewed and approved.\u003C\u002Fp>\n\u003Cp>A big shout-out to all the \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Ffootball-pool\u002Fcontributors\u002F\" rel=\"nofollow ugc\">translation contributors and editors\u003C\u002Fa> who’ve helped out so far — thank you!\u003C\u002Fp>\n\u003Cp>For using custom translations, check the FAQ section. The plugin also includes a \u003Ccode>.pot\u003C\u002Fcode> file as a starting point for building your own translation files.\u003C\u002Fp>\n\u003Ch3>Shortcodes\u003C\u002Fh3>\n\u003Cp>The plugin provides the following shortcodes. For detailed usage instructions, see the Help page in the WordPress admin.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>fp-predictions\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>fp-predictionform\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>fp-matches\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>fp-match-scores\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>fp-question-scores\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>fp-next-matches\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>fp-last-matches\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>fp-user-score\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>fp-user-ranking\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>fp-ranking\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>fp-countdown\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>fp-group\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>fp-link\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>fp-register\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>fp-totopoints\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>fp-fullpoints\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>fp-goalpoints\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>fp-diffpoints\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>fp-jokermultiplier\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>fp-plugin-option\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>fp-league-info\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>fp-chart-settings\u003C\u002Fcode> \u002F \u003Ccode>fp-stats-settings\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>fp-user-list\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>fp-money-in-the-pot\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>fp-last-calc-date\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>fp-next-match-form\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Incompatible Plugins & Themes\u003C\u002Fh3>\n\u003Cp>The following plugins have been reported as incompatible with Football Pool. If you’re the author and have a fix — or if you know a workaround — please get in touch.\u003C\u002Fp>\n\u003Cp>If you encounter issues with another plugin not listed here, let me know so I can investigate.\u003C\u002Fp>\n\u003Cp>\u003Cem>Most caching solutions should be tested carefully.\u003C\u002Fem>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>DB Cache Reloaded Fix (v2.3)\u003C\u002Fli>\n\u003Cli>Cimy User Extra Fields (v2.6.1) when using the email confirmation feature\u003C\u002Fli>\n\u003Cli>Easy Timer (in Football Pool versions 2.3.8 and below)\u003C\u002Fli>\n\u003Cli>Theme Gadgetry (ThemeFuse framework)\u003C\u002Fli>\n\u003Cli>memcached\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Some themes may also interfere with the plugin’s display. See \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Ftopic\u002Ftheme-compatibility-73\u002F#post-17811227\" rel=\"ugc\">this forum post\u003C\u002Fa> for a potential fix.\u003C\u002Fp>\n","Add some game-day fun to your WordPress site! Let users predict match results, earn points, and go head-to-head in a fantasy sports pool.",700,96466,82,"2025-09-09T18:21:00.000Z","5.3",[22,106,107,23,108],"game","pool","sports","http:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Ffootball-pool","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffootball-pool.2.13.1.zip",96,8,"2025-09-09 00:00:00",{"slug":115,"name":116,"version":117,"author":118,"author_profile":119,"description":120,"short_description":121,"active_installs":13,"downloaded":122,"rating":13,"num_ratings":14,"last_updated":123,"tested_up_to":124,"requires_at_least":125,"requires_php":18,"tags":126,"homepage":132,"download_link":133,"security_score":52,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"webeki-soccer-scores","Soccer Widgets – Football Results & Rankings","1.3","widgetlab","https:\u002F\u002Fprofiles.wordpress.org\u002Fnvmnewvision\u002F","\u003Cp>Show football scores and table rankings in your WordPress website using Soccer Widgets shortcodes. Free data, updated automatically, from 250+ football competitions from all over the world, available in multiple languages.\u003C\u002Fp>\n\u003Cp>Features:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>widgets with football table rankings and latest match results from 250+ competitions around the world\u003C\u002Fli>\n\u003Cli>data available for pull in 16 languages (English, Spanish, French, German, Swedish, Danish, Norwegian, Finnish, Dutch, Italian, Portuguese, Polish, Romanian, Hungarian, Czech, Greek)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>How to use:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>install the plugin and activate it in your WordPress website\u003C\u002Fli>\n\u003Cli>in the left side menu in Admin area look for Soccer Widgets item\u003C\u002Fli>\n\u003Cli>go to Soccer Widgets to generate the shortcode for any data options like results and table rankings\u003C\u002Fli>\n\u003Cli>copy the shortcode and paste it in your blog post or page\u003C\u002Fli>\n\u003Cli>optional: most data in widgets are presented in table formats, with 100% width. You can use html code to control the size of the width\u003C\u002Fli>\n\u003Cli>optional: data tables from these widgets make use of your website CSS style. However if you do not like how they look in your pages, play with the Customization option of the plugin to change style colors\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Arbitrary section\u003C\u002Fh3>\n","Soccer Widgets: use shortcodes to deliver updated soccer data like various table rankings and football results by competition.",5966,"2024-01-22T02:31:00.000Z","6.4.8","4.1",[127,128,129,130,131],"football-rankings","football-tables","soccer-results","soccer-statistics","soccer-widgets","https:\u002F\u002Fwww.widgetlab.net\u002Fwordpress-plugins\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwebeki-soccer-scores.1.3.zip",{"attackSurface":135,"codeSignals":185,"taintFlows":662,"riskAssessment":1010,"analyzedAt":1023},{"hooks":136,"ajaxHandlers":175,"restRoutes":182,"shortcodes":183,"cronEvents":184,"entryPointCount":14,"unprotectedCount":14},[137,143,147,150,153,156,159,163,166,172],{"type":138,"name":139,"callback":140,"file":141,"line":142},"action","plugins_loaded","load_textdomain","football-predictor.php",75,{"type":138,"name":144,"callback":145,"file":141,"line":146},"wp_enqueue_scripts","adjust_knockout",79,{"type":138,"name":148,"callback":148,"file":141,"line":149},"admin_menu",105,{"type":138,"name":151,"callback":151,"file":141,"line":152},"admin_print_scripts",106,{"type":138,"name":154,"callback":154,"file":141,"line":155},"admin_print_styles",107,{"type":138,"name":157,"callback":157,"file":141,"line":158},"admin_init",108,{"type":138,"name":144,"callback":160,"file":161,"line":162},"connect_resources","includes\\class-football.php",37,{"type":138,"name":164,"callback":164,"file":161,"line":165},"widgets_init",39,{"type":167,"name":168,"callback":169,"file":170,"line":171},"filter","the_content","fp_template_scores_content","includes\\football-helpers.php",7,{"type":167,"name":168,"callback":173,"file":170,"line":174},"fp_template_predictions_content",11,[176],{"action":177,"nopriv":178,"callback":179,"hasNonce":178,"hasCapCheck":178,"file":180,"line":181},"footballpredictor_ajax",false,"ajax","includes\\class-fp-predict.php",18,[],[],[],{"dangerousFunctions":186,"sqlUsage":192,"outputEscaping":212,"fileOperations":27,"externalRequests":14,"nonceChecks":660,"capabilityChecks":90,"bundledLibraries":661},[187],{"fn":188,"file":189,"line":190,"context":191},"unserialize","admin\\class-fp-overview.php",170,"$content = unserialize($response['body']);",{"prepared":193,"raw":194,"locations":195},135,9,[196,199,201,202,204,208,209,210,211],{"file":189,"line":197,"context":198},16,"$wpdb->get_var() with variable interpolation",{"file":189,"line":200,"context":198},17,{"file":189,"line":181,"context":198},{"file":189,"line":203,"context":198},19,{"file":205,"line":206,"context":207},"uninstall.php",15,"$wpdb->query() with variable interpolation",{"file":205,"line":197,"context":207},{"file":205,"line":200,"context":207},{"file":205,"line":181,"context":207},{"file":205,"line":203,"context":207},{"escaped":213,"rawEcho":214,"locations":215},29,292,[216,220,222,224,226,229,230,231,232,234,236,238,240,242,244,245,247,249,251,253,255,257,259,260,262,264,265,267,268,269,270,272,274,276,278,280,282,284,286,288,290,292,294,297,299,301,303,305,306,308,310,312,313,315,317,319,321,323,325,327,328,329,330,331,332,333,334,335,337,338,339,341,343,344,347,348,349,351,353,355,357,359,361,363,365,367,369,370,372,374,375,376,378,380,382,383,385,387,388,390,391,392,393,395,397,399,401,402,403,404,405,407,408,410,412,414,415,416,418,419,420,422,424,425,426,428,429,431,433,435,436,437,438,440,442,444,445,446,448,449,451,453,455,457,459,460,462,463,464,465,466,468,470,472,473,474,476,477,479,481,483,485,487,489,491,492,493,495,497,499,501,503,505,507,508,510,512,513,514,515,516,517,518,520,521,522,524,525,526,528,529,530,531,532,534,535,536,538,539,541,542,543,545,546,547,548,550,551,552,554,556,558,559,561,562,563,564,565,566,567,568,569,570,571,572,573,575,577,578,580,581,582,583,584,585,586,587,588,589,591,593,595,596,597,599,601,603,604,606,608,609,611,613,614,616,617,618,619,620,621,623,624,625,626,627,629,630,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,649,651,653,654,655,656,657,658,659],{"file":217,"line":218,"context":219},"admin\\class-fp-admin.php",90,"raw output",{"file":217,"line":221,"context":219},120,{"file":217,"line":223,"context":219},142,{"file":217,"line":225,"context":219},168,{"file":227,"line":228,"context":219},"admin\\class-fp-matches.php",133,{"file":227,"line":228,"context":219},{"file":227,"line":228,"context":219},{"file":227,"line":223,"context":219},{"file":227,"line":233,"context":219},146,{"file":227,"line":235,"context":219},150,{"file":227,"line":237,"context":219},154,{"file":227,"line":239,"context":219},161,{"file":227,"line":241,"context":219},163,{"file":227,"line":243,"context":219},165,{"file":227,"line":190,"context":219},{"file":227,"line":246,"context":219},172,{"file":227,"line":248,"context":219},174,{"file":227,"line":250,"context":219},188,{"file":227,"line":252,"context":219},190,{"file":227,"line":254,"context":219},191,{"file":227,"line":256,"context":219},195,{"file":227,"line":258,"context":219},220,{"file":227,"line":258,"context":219},{"file":227,"line":261,"context":219},222,{"file":227,"line":263,"context":219},245,{"file":227,"line":263,"context":219},{"file":227,"line":266,"context":219},246,{"file":227,"line":266,"context":219},{"file":227,"line":266,"context":219},{"file":227,"line":266,"context":219},{"file":227,"line":271,"context":219},247,{"file":227,"line":273,"context":219},248,{"file":227,"line":275,"context":219},249,{"file":227,"line":277,"context":219},250,{"file":227,"line":279,"context":219},252,{"file":227,"line":281,"context":219},253,{"file":227,"line":283,"context":219},255,{"file":227,"line":285,"context":219},259,{"file":227,"line":287,"context":219},261,{"file":227,"line":289,"context":219},264,{"file":227,"line":291,"context":219},266,{"file":227,"line":293,"context":219},272,{"file":295,"line":296,"context":219},"admin\\class-fp-menu.php",22,{"file":295,"line":298,"context":219},25,{"file":295,"line":300,"context":219},26,{"file":295,"line":302,"context":219},27,{"file":295,"line":304,"context":219},28,{"file":295,"line":213,"context":219},{"file":295,"line":307,"context":219},32,{"file":295,"line":309,"context":219},33,{"file":295,"line":311,"context":219},36,{"file":295,"line":162,"context":219},{"file":295,"line":314,"context":219},40,{"file":295,"line":316,"context":219},41,{"file":295,"line":318,"context":219},44,{"file":295,"line":320,"context":219},45,{"file":295,"line":322,"context":219},48,{"file":295,"line":324,"context":219},49,{"file":295,"line":326,"context":219},63,{"file":189,"line":307,"context":219},{"file":189,"line":309,"context":219},{"file":189,"line":311,"context":219},{"file":189,"line":162,"context":219},{"file":189,"line":314,"context":219},{"file":189,"line":316,"context":219},{"file":189,"line":318,"context":219},{"file":189,"line":320,"context":219},{"file":189,"line":336,"context":219},61,{"file":189,"line":336,"context":219},{"file":189,"line":218,"context":219},{"file":189,"line":340,"context":219},91,{"file":189,"line":342,"context":219},92,{"file":189,"line":34,"context":219},{"file":345,"line":346,"context":219},"admin\\class-fp-predictions.php",112,{"file":345,"line":346,"context":219},{"file":345,"line":346,"context":219},{"file":345,"line":350,"context":219},119,{"file":345,"line":352,"context":219},123,{"file":345,"line":354,"context":219},128,{"file":345,"line":356,"context":219},130,{"file":345,"line":358,"context":219},136,{"file":345,"line":360,"context":219},138,{"file":345,"line":362,"context":219},143,{"file":345,"line":364,"context":219},147,{"file":345,"line":366,"context":219},152,{"file":345,"line":368,"context":219},153,{"file":345,"line":237,"context":219},{"file":345,"line":371,"context":219},155,{"file":345,"line":373,"context":219},156,{"file":345,"line":239,"context":219},{"file":345,"line":241,"context":219},{"file":345,"line":377,"context":219},164,{"file":345,"line":379,"context":219},169,{"file":345,"line":381,"context":219},209,{"file":345,"line":381,"context":219},{"file":345,"line":384,"context":219},213,{"file":345,"line":386,"context":219},236,{"file":345,"line":386,"context":219},{"file":345,"line":389,"context":219},239,{"file":345,"line":389,"context":219},{"file":345,"line":389,"context":219},{"file":345,"line":389,"context":219},{"file":345,"line":394,"context":219},241,{"file":345,"line":396,"context":219},242,{"file":345,"line":398,"context":219},243,{"file":345,"line":400,"context":219},244,{"file":345,"line":263,"context":219},{"file":345,"line":271,"context":219},{"file":345,"line":275,"context":219},{"file":345,"line":283,"context":219},{"file":345,"line":406,"context":219},257,{"file":345,"line":287,"context":219},{"file":345,"line":409,"context":219},262,{"file":345,"line":411,"context":219},271,{"file":413,"line":311,"context":219},"admin\\class-fp-results.php",{"file":413,"line":311,"context":219},{"file":413,"line":311,"context":219},{"file":413,"line":417,"context":219},38,{"file":413,"line":336,"context":219},{"file":413,"line":336,"context":219},{"file":413,"line":421,"context":219},65,{"file":413,"line":423,"context":219},93,{"file":413,"line":423,"context":219},{"file":413,"line":80,"context":219},{"file":413,"line":427,"context":219},99,{"file":413,"line":13,"context":219},{"file":413,"line":430,"context":219},101,{"file":413,"line":432,"context":219},102,{"file":413,"line":434,"context":219},103,{"file":413,"line":149,"context":219},{"file":413,"line":152,"context":219},{"file":413,"line":155,"context":219},{"file":413,"line":439,"context":219},116,{"file":441,"line":314,"context":219},"admin\\class-fp-scoring.php",{"file":441,"line":443,"context":219},43,{"file":441,"line":318,"context":219},{"file":441,"line":320,"context":219},{"file":441,"line":447,"context":219},46,{"file":441,"line":324,"context":219},{"file":441,"line":450,"context":219},50,{"file":441,"line":452,"context":219},53,{"file":441,"line":454,"context":219},54,{"file":441,"line":456,"context":219},57,{"file":441,"line":458,"context":219},58,{"file":441,"line":336,"context":219},{"file":441,"line":461,"context":219},62,{"file":441,"line":149,"context":219},{"file":441,"line":149,"context":219},{"file":441,"line":149,"context":219},{"file":441,"line":346,"context":219},{"file":441,"line":467,"context":219},113,{"file":441,"line":469,"context":219},117,{"file":441,"line":471,"context":219},122,{"file":441,"line":352,"context":219},{"file":441,"line":193,"context":219},{"file":441,"line":475,"context":219},140,{"file":441,"line":364,"context":219},{"file":441,"line":478,"context":219},179,{"file":441,"line":480,"context":219},180,{"file":441,"line":482,"context":219},183,{"file":441,"line":484,"context":219},184,{"file":441,"line":486,"context":219},189,{"file":441,"line":488,"context":219},194,{"file":490,"line":434,"context":219},"admin\\class-fp-stages.php",{"file":490,"line":434,"context":219},{"file":490,"line":434,"context":219},{"file":490,"line":494,"context":219},110,{"file":490,"line":496,"context":219},118,{"file":490,"line":498,"context":219},124,{"file":490,"line":500,"context":219},126,{"file":490,"line":502,"context":219},127,{"file":490,"line":504,"context":219},132,{"file":490,"line":506,"context":219},149,{"file":490,"line":506,"context":219},{"file":490,"line":509,"context":219},151,{"file":490,"line":511,"context":219},167,{"file":490,"line":511,"context":219},{"file":490,"line":225,"context":219},{"file":490,"line":225,"context":219},{"file":490,"line":225,"context":219},{"file":490,"line":225,"context":219},{"file":490,"line":379,"context":219},{"file":490,"line":519,"context":219},171,{"file":490,"line":246,"context":219},{"file":490,"line":480,"context":219},{"file":523,"line":149,"context":219},"admin\\class-fp-teams.php",{"file":523,"line":149,"context":219},{"file":523,"line":149,"context":219},{"file":523,"line":527,"context":219},114,{"file":523,"line":496,"context":219},{"file":523,"line":471,"context":219},{"file":523,"line":500,"context":219},{"file":523,"line":504,"context":219},{"file":523,"line":533,"context":219},134,{"file":523,"line":193,"context":219},{"file":523,"line":475,"context":219},{"file":523,"line":537,"context":219},158,{"file":523,"line":537,"context":219},{"file":523,"line":540,"context":219},162,{"file":523,"line":480,"context":219},{"file":523,"line":480,"context":219},{"file":523,"line":544,"context":219},181,{"file":523,"line":544,"context":219},{"file":523,"line":544,"context":219},{"file":523,"line":544,"context":219},{"file":523,"line":549,"context":219},182,{"file":523,"line":482,"context":219},{"file":523,"line":484,"context":219},{"file":523,"line":553,"context":219},185,{"file":523,"line":555,"context":219},186,{"file":523,"line":557,"context":219},187,{"file":523,"line":256,"context":219},{"file":560,"line":434,"context":219},"admin\\class-fp-venues.php",{"file":560,"line":434,"context":219},{"file":560,"line":434,"context":219},{"file":560,"line":346,"context":219},{"file":560,"line":439,"context":219},{"file":560,"line":221,"context":219},{"file":560,"line":498,"context":219},{"file":560,"line":356,"context":219},{"file":560,"line":504,"context":219},{"file":560,"line":228,"context":219},{"file":560,"line":360,"context":219},{"file":560,"line":373,"context":219},{"file":560,"line":373,"context":219},{"file":560,"line":574,"context":219},160,{"file":560,"line":576,"context":219},177,{"file":560,"line":576,"context":219},{"file":560,"line":579,"context":219},178,{"file":560,"line":579,"context":219},{"file":560,"line":579,"context":219},{"file":560,"line":579,"context":219},{"file":560,"line":478,"context":219},{"file":560,"line":480,"context":219},{"file":560,"line":544,"context":219},{"file":560,"line":549,"context":219},{"file":560,"line":482,"context":219},{"file":560,"line":254,"context":219},{"file":161,"line":590,"context":219},226,{"file":592,"line":213,"context":219},"includes\\class-fp-widgets.php",{"file":592,"line":594,"context":219},31,{"file":592,"line":311,"context":219},{"file":592,"line":165,"context":219},{"file":592,"line":598,"context":219},42,{"file":592,"line":600,"context":219},80,{"file":592,"line":602,"context":219},81,{"file":592,"line":602,"context":219},{"file":592,"line":605,"context":219},83,{"file":592,"line":607,"context":219},84,{"file":592,"line":607,"context":219},{"file":592,"line":610,"context":219},86,{"file":592,"line":612,"context":219},87,{"file":592,"line":612,"context":219},{"file":592,"line":615,"context":219},89,{"file":592,"line":218,"context":219},{"file":592,"line":218,"context":219},{"file":592,"line":342,"context":219},{"file":592,"line":423,"context":219},{"file":592,"line":423,"context":219},{"file":592,"line":622,"context":219},95,{"file":592,"line":111,"context":219},{"file":592,"line":111,"context":219},{"file":592,"line":496,"context":219},{"file":592,"line":221,"context":219},{"file":592,"line":628,"context":219},125,{"file":592,"line":354,"context":219},{"file":592,"line":631,"context":219},131,{"file":592,"line":239,"context":219},{"file":592,"line":540,"context":219},{"file":592,"line":540,"context":219},{"file":592,"line":377,"context":219},{"file":592,"line":243,"context":219},{"file":592,"line":243,"context":219},{"file":592,"line":511,"context":219},{"file":592,"line":225,"context":219},{"file":592,"line":225,"context":219},{"file":592,"line":190,"context":219},{"file":592,"line":519,"context":219},{"file":592,"line":519,"context":219},{"file":592,"line":250,"context":219},{"file":592,"line":252,"context":219},{"file":592,"line":256,"context":219},{"file":592,"line":648,"context":219},197,{"file":592,"line":650,"context":219},216,{"file":592,"line":652,"context":219},217,{"file":592,"line":652,"context":219},{"file":592,"line":389,"context":219},{"file":592,"line":394,"context":219},{"file":592,"line":273,"context":219},{"file":592,"line":411,"context":219},{"file":592,"line":293,"context":219},{"file":592,"line":293,"context":219},23,[],[663,679,688,698,706,728,754,793,809,832,852,877,895,921,938,966,983],{"entryPoint":664,"graph":665,"unsanitizedCount":14,"severity":678},"get_server_info (admin\\class-fp-overview.php:75)",{"nodes":666,"edges":676},[667,671],{"id":668,"type":669,"label":670,"file":189,"line":218},"n0","source","$_SERVER['SERVER_SOFTWARE']",{"id":672,"type":673,"label":674,"file":189,"line":218,"wp_function":675},"n1","sink","echo() [XSS]","echo",[677],{"from":668,"to":672,"sanitized":178},"medium",{"entryPoint":680,"graph":681,"unsanitizedCount":14,"severity":678},"results (admin\\class-fp-results.php:24)",{"nodes":682,"edges":686},[683,685],{"id":668,"type":669,"label":684,"file":413,"line":336},"$_SERVER['PHP_SELF']",{"id":672,"type":673,"label":674,"file":413,"line":336,"wp_function":675},[687],{"from":668,"to":672,"sanitized":178},{"entryPoint":689,"graph":690,"unsanitizedCount":27,"severity":697},"\u003Cclass-fp-overview> (admin\\class-fp-overview.php:0)",{"nodes":691,"edges":694},[692,693],{"id":668,"type":669,"label":670,"file":189,"line":218},{"id":672,"type":673,"label":674,"file":189,"line":218,"wp_function":675},[695],{"from":668,"to":672,"sanitized":696},true,"low",{"entryPoint":699,"graph":700,"unsanitizedCount":14,"severity":697},"\u003Cclass-fp-results> (admin\\class-fp-results.php:0)",{"nodes":701,"edges":704},[702,703],{"id":668,"type":669,"label":684,"file":413,"line":336},{"id":672,"type":673,"label":674,"file":413,"line":336,"wp_function":675},[705],{"from":668,"to":672,"sanitized":178},{"entryPoint":707,"graph":708,"unsanitizedCount":27,"severity":697},"scores (admin\\class-fp-scoring.php:74)",{"nodes":709,"edges":724},[710,712,715,717,719,722],{"id":668,"type":669,"label":711,"file":441,"line":602},"$_POST",{"id":672,"type":673,"label":713,"file":441,"line":340,"wp_function":714},"update_option() [Settings Manipulation]","update_option",{"id":716,"type":669,"label":684,"file":441,"line":149},"n2",{"id":718,"type":673,"label":674,"file":441,"line":149,"wp_function":675},"n3",{"id":720,"type":669,"label":721,"file":441,"line":602},"n4","$_POST (x5)",{"id":723,"type":673,"label":674,"file":441,"line":346,"wp_function":675},"n5",[725,726,727],{"from":668,"to":672,"sanitized":696},{"from":716,"to":718,"sanitized":696},{"from":720,"to":723,"sanitized":696},{"entryPoint":729,"graph":730,"unsanitizedCount":14,"severity":753},"matches (admin\\class-fp-matches.php:25)",{"nodes":731,"edges":748},[732,734,735,737,738,740,743],{"id":668,"type":669,"label":733,"file":227,"line":228},"$_SERVER['PHP_SELF'] (x3)",{"id":672,"type":673,"label":674,"file":227,"line":228,"wp_function":675},{"id":716,"type":669,"label":736,"file":227,"line":152},"$_GET (x16)",{"id":718,"type":673,"label":674,"file":227,"line":250,"wp_function":675},{"id":720,"type":669,"label":739,"file":227,"line":155},"$_GET",{"id":723,"type":741,"label":742,"file":227,"line":155},"transform","→ get()",{"id":744,"type":673,"label":745,"file":560,"line":746,"wp_function":747},"n6","get_row() [SQLi]",276,"get_row",[749,750,751,752],{"from":668,"to":672,"sanitized":696},{"from":716,"to":718,"sanitized":696},{"from":720,"to":723,"sanitized":178},{"from":723,"to":744,"sanitized":178},"high",{"entryPoint":755,"graph":756,"unsanitizedCount":14,"severity":753},"\u003Cclass-fp-matches> (admin\\class-fp-matches.php:0)",{"nodes":757,"edges":785},[758,759,760,761,762,764,768,769,772,774,779,781,783],{"id":668,"type":669,"label":733,"file":227,"line":228},{"id":672,"type":673,"label":674,"file":227,"line":228,"wp_function":675},{"id":716,"type":669,"label":736,"file":227,"line":152},{"id":718,"type":673,"label":674,"file":227,"line":250,"wp_function":675},{"id":720,"type":669,"label":763,"file":227,"line":152},"$_GET (x2)",{"id":723,"type":673,"label":765,"file":227,"line":766,"wp_function":767},"query() [SQLi]",362,"query",{"id":744,"type":669,"label":739,"file":227,"line":152},{"id":770,"type":673,"label":745,"file":227,"line":771,"wp_function":747},"n7",380,{"id":773,"type":669,"label":739,"file":227,"line":152},"n8",{"id":775,"type":673,"label":776,"file":227,"line":777,"wp_function":778},"n9","get_var() [SQLi]",399,"get_var",{"id":780,"type":669,"label":739,"file":227,"line":155},"n10",{"id":782,"type":741,"label":742,"file":227,"line":155},"n11",{"id":784,"type":673,"label":745,"file":560,"line":746,"wp_function":747},"n12",[786,787,788,789,790,791,792],{"from":668,"to":672,"sanitized":696},{"from":716,"to":718,"sanitized":696},{"from":720,"to":723,"sanitized":696},{"from":744,"to":770,"sanitized":696},{"from":773,"to":775,"sanitized":696},{"from":780,"to":782,"sanitized":178},{"from":782,"to":784,"sanitized":178},{"entryPoint":794,"graph":795,"unsanitizedCount":14,"severity":753},"predictions (admin\\class-fp-predictions.php:24)",{"nodes":796,"edges":804},[797,798,799,800,801,802,803],{"id":668,"type":669,"label":733,"file":345,"line":346},{"id":672,"type":673,"label":674,"file":345,"line":346,"wp_function":675},{"id":716,"type":669,"label":736,"file":345,"line":610},{"id":718,"type":673,"label":674,"file":345,"line":239,"wp_function":675},{"id":720,"type":669,"label":739,"file":345,"line":612},{"id":723,"type":741,"label":742,"file":345,"line":612},{"id":744,"type":673,"label":745,"file":560,"line":746,"wp_function":747},[805,806,807,808],{"from":668,"to":672,"sanitized":696},{"from":716,"to":718,"sanitized":696},{"from":720,"to":723,"sanitized":178},{"from":723,"to":744,"sanitized":178},{"entryPoint":810,"graph":811,"unsanitizedCount":14,"severity":753},"\u003Cclass-fp-predictions> (admin\\class-fp-predictions.php:0)",{"nodes":812,"edges":825},[813,814,815,816,817,818,819,820,822,823,824],{"id":668,"type":669,"label":733,"file":345,"line":346},{"id":672,"type":673,"label":674,"file":345,"line":346,"wp_function":675},{"id":716,"type":669,"label":736,"file":345,"line":610},{"id":718,"type":673,"label":674,"file":345,"line":239,"wp_function":675},{"id":720,"type":669,"label":763,"file":345,"line":610},{"id":723,"type":673,"label":765,"file":345,"line":766,"wp_function":767},{"id":744,"type":669,"label":739,"file":345,"line":610},{"id":770,"type":673,"label":745,"file":345,"line":821,"wp_function":747},374,{"id":773,"type":669,"label":739,"file":345,"line":612},{"id":775,"type":741,"label":742,"file":345,"line":612},{"id":780,"type":673,"label":745,"file":560,"line":746,"wp_function":747},[826,827,828,829,830,831],{"from":668,"to":672,"sanitized":696},{"from":716,"to":718,"sanitized":696},{"from":720,"to":723,"sanitized":696},{"from":744,"to":770,"sanitized":696},{"from":773,"to":775,"sanitized":178},{"from":775,"to":780,"sanitized":178},{"entryPoint":833,"graph":834,"unsanitizedCount":851,"severity":753},"ranking (admin\\class-fp-scoring.php:155)",{"nodes":835,"edges":847},[836,838,839,840,842],{"id":668,"type":669,"label":837,"file":441,"line":241},"$_POST (x3)",{"id":672,"type":673,"label":674,"file":441,"line":478,"wp_function":675},{"id":716,"type":669,"label":711,"file":441,"line":486},{"id":718,"type":741,"label":841,"file":441,"line":486},"→ user_scores()",{"id":720,"type":673,"label":843,"file":844,"line":845,"wp_function":846},"get_results() [SQLi]","includes\\class-fp-reports.php",796,"get_results",[848,849,850],{"from":668,"to":672,"sanitized":178},{"from":716,"to":718,"sanitized":178},{"from":718,"to":720,"sanitized":178},4,{"entryPoint":853,"graph":854,"unsanitizedCount":14,"severity":753},"\u003Cclass-fp-scoring> (admin\\class-fp-scoring.php:0)",{"nodes":855,"edges":870},[856,857,858,859,860,862,863,865,867,868,869],{"id":668,"type":669,"label":711,"file":441,"line":602},{"id":672,"type":673,"label":713,"file":441,"line":340,"wp_function":714},{"id":716,"type":669,"label":684,"file":441,"line":149},{"id":718,"type":673,"label":674,"file":441,"line":149,"wp_function":675},{"id":720,"type":669,"label":861,"file":441,"line":602},"$_POST (x8)",{"id":723,"type":673,"label":674,"file":441,"line":346,"wp_function":675},{"id":744,"type":669,"label":864,"file":441,"line":241},"$_POST (x9)",{"id":770,"type":673,"label":765,"file":441,"line":866,"wp_function":767},221,{"id":773,"type":669,"label":711,"file":441,"line":486},{"id":775,"type":741,"label":841,"file":441,"line":486},{"id":780,"type":673,"label":843,"file":844,"line":845,"wp_function":846},[871,872,873,874,875,876],{"from":668,"to":672,"sanitized":696},{"from":716,"to":718,"sanitized":696},{"from":720,"to":723,"sanitized":696},{"from":744,"to":770,"sanitized":696},{"from":773,"to":775,"sanitized":178},{"from":775,"to":780,"sanitized":178},{"entryPoint":878,"graph":879,"unsanitizedCount":14,"severity":753},"stages (admin\\class-fp-stages.php:24)",{"nodes":880,"edges":890},[881,882,883,886,887,888,889],{"id":668,"type":669,"label":733,"file":490,"line":434},{"id":672,"type":673,"label":674,"file":490,"line":434,"wp_function":675},{"id":716,"type":669,"label":884,"file":490,"line":885},"$_GET (x8)",78,{"id":718,"type":673,"label":674,"file":490,"line":498,"wp_function":675},{"id":720,"type":669,"label":739,"file":490,"line":146},{"id":723,"type":741,"label":742,"file":490,"line":146},{"id":744,"type":673,"label":745,"file":560,"line":746,"wp_function":747},[891,892,893,894],{"from":668,"to":672,"sanitized":696},{"from":716,"to":718,"sanitized":696},{"from":720,"to":723,"sanitized":178},{"from":723,"to":744,"sanitized":178},{"entryPoint":896,"graph":897,"unsanitizedCount":14,"severity":753},"\u003Cclass-fp-stages> (admin\\class-fp-stages.php:0)",{"nodes":898,"edges":913},[899,900,901,902,903,904,905,906,907,908,910,911,912],{"id":668,"type":669,"label":733,"file":490,"line":434},{"id":672,"type":673,"label":674,"file":490,"line":434,"wp_function":675},{"id":716,"type":669,"label":884,"file":490,"line":885},{"id":718,"type":673,"label":674,"file":490,"line":498,"wp_function":675},{"id":720,"type":669,"label":763,"file":490,"line":885},{"id":723,"type":673,"label":765,"file":490,"line":275,"wp_function":767},{"id":744,"type":669,"label":739,"file":490,"line":885},{"id":770,"type":673,"label":745,"file":490,"line":409,"wp_function":747},{"id":773,"type":669,"label":739,"file":490,"line":885},{"id":775,"type":673,"label":776,"file":490,"line":909,"wp_function":778},281,{"id":780,"type":669,"label":739,"file":490,"line":146},{"id":782,"type":741,"label":742,"file":490,"line":146},{"id":784,"type":673,"label":745,"file":560,"line":746,"wp_function":747},[914,915,916,917,918,919,920],{"from":668,"to":672,"sanitized":696},{"from":716,"to":718,"sanitized":696},{"from":720,"to":723,"sanitized":696},{"from":744,"to":770,"sanitized":696},{"from":773,"to":775,"sanitized":696},{"from":780,"to":782,"sanitized":178},{"from":782,"to":784,"sanitized":178},{"entryPoint":922,"graph":923,"unsanitizedCount":14,"severity":753},"teams (admin\\class-fp-teams.php:24)",{"nodes":924,"edges":933},[925,926,927,929,930,931,932],{"id":668,"type":669,"label":733,"file":523,"line":149},{"id":672,"type":673,"label":674,"file":523,"line":149,"wp_function":675},{"id":716,"type":669,"label":928,"file":523,"line":600},"$_GET (x11)",{"id":718,"type":673,"label":674,"file":523,"line":504,"wp_function":675},{"id":720,"type":669,"label":739,"file":523,"line":602},{"id":723,"type":741,"label":742,"file":523,"line":602},{"id":744,"type":673,"label":745,"file":560,"line":746,"wp_function":747},[934,935,936,937],{"from":668,"to":672,"sanitized":696},{"from":716,"to":718,"sanitized":696},{"from":720,"to":723,"sanitized":178},{"from":723,"to":744,"sanitized":178},{"entryPoint":939,"graph":940,"unsanitizedCount":14,"severity":753},"\u003Cclass-fp-teams> (admin\\class-fp-teams.php:0)",{"nodes":941,"edges":958},[942,943,944,945,946,947,949,950,952,953,955,956,957],{"id":668,"type":669,"label":733,"file":523,"line":149},{"id":672,"type":673,"label":674,"file":523,"line":149,"wp_function":675},{"id":716,"type":669,"label":928,"file":523,"line":600},{"id":718,"type":673,"label":674,"file":523,"line":504,"wp_function":675},{"id":720,"type":669,"label":763,"file":523,"line":600},{"id":723,"type":673,"label":765,"file":523,"line":948,"wp_function":767},267,{"id":744,"type":669,"label":739,"file":523,"line":600},{"id":770,"type":673,"label":745,"file":523,"line":951,"wp_function":747},280,{"id":773,"type":669,"label":739,"file":523,"line":600},{"id":775,"type":673,"label":776,"file":523,"line":954,"wp_function":778},299,{"id":780,"type":669,"label":739,"file":523,"line":602},{"id":782,"type":741,"label":742,"file":523,"line":602},{"id":784,"type":673,"label":745,"file":560,"line":746,"wp_function":747},[959,960,961,962,963,964,965],{"from":668,"to":672,"sanitized":696},{"from":716,"to":718,"sanitized":696},{"from":720,"to":723,"sanitized":696},{"from":744,"to":770,"sanitized":696},{"from":773,"to":775,"sanitized":696},{"from":780,"to":782,"sanitized":178},{"from":782,"to":784,"sanitized":178},{"entryPoint":967,"graph":968,"unsanitizedCount":14,"severity":753},"venues (admin\\class-fp-venues.php:24)",{"nodes":969,"edges":978},[970,971,972,974,975,976,977],{"id":668,"type":669,"label":733,"file":560,"line":434},{"id":672,"type":673,"label":674,"file":560,"line":434,"wp_function":675},{"id":716,"type":669,"label":973,"file":560,"line":146},"$_GET (x10)",{"id":718,"type":673,"label":674,"file":560,"line":356,"wp_function":675},{"id":720,"type":669,"label":739,"file":560,"line":600},{"id":723,"type":741,"label":742,"file":560,"line":600},{"id":744,"type":673,"label":745,"file":560,"line":746,"wp_function":747},[979,980,981,982],{"from":668,"to":672,"sanitized":696},{"from":716,"to":718,"sanitized":696},{"from":720,"to":723,"sanitized":178},{"from":723,"to":744,"sanitized":178},{"entryPoint":984,"graph":985,"unsanitizedCount":14,"severity":753},"\u003Cclass-fp-venues> (admin\\class-fp-venues.php:0)",{"nodes":986,"edges":1002},[987,988,989,990,991,992,994,995,996,997,999,1000,1001],{"id":668,"type":669,"label":733,"file":560,"line":434},{"id":672,"type":673,"label":674,"file":560,"line":434,"wp_function":675},{"id":716,"type":669,"label":973,"file":560,"line":146},{"id":718,"type":673,"label":674,"file":560,"line":356,"wp_function":675},{"id":720,"type":669,"label":763,"file":560,"line":146},{"id":723,"type":673,"label":765,"file":560,"line":993,"wp_function":767},263,{"id":744,"type":669,"label":739,"file":560,"line":146},{"id":770,"type":673,"label":745,"file":560,"line":746,"wp_function":747},{"id":773,"type":669,"label":739,"file":560,"line":146},{"id":775,"type":673,"label":776,"file":560,"line":998,"wp_function":778},295,{"id":780,"type":669,"label":739,"file":560,"line":600},{"id":782,"type":741,"label":742,"file":560,"line":600},{"id":784,"type":673,"label":745,"file":560,"line":746,"wp_function":747},[1003,1004,1005,1006,1007,1008,1009],{"from":668,"to":672,"sanitized":696},{"from":716,"to":718,"sanitized":696},{"from":720,"to":723,"sanitized":696},{"from":744,"to":770,"sanitized":696},{"from":773,"to":775,"sanitized":696},{"from":780,"to":782,"sanitized":178},{"from":782,"to":784,"sanitized":178},{"summary":1011,"deductions":1012},"The \"football-predictor\" v1.0.9 plugin exhibits a concerning security posture despite a clean vulnerability history.  The static analysis reveals significant weaknesses, particularly in its handling of user input and access control.  The presence of an unprotected AJAX handler is a major red flag, providing an easily accessible entry point for attackers.  Compounding this, the taint analysis shows a high number of flows with unsanitized paths, with 12 classified as high severity. This strongly suggests potential for code injection or data manipulation vulnerabilities, especially when combined with the unprotected AJAX handler.\n\nWhile the plugin demonstrates good practices in using prepared statements for the majority of its SQL queries and has a robust number of nonce checks, these strengths are overshadowed by the identified weaknesses. The lack of proper output escaping on a substantial portion of its outputs also presents a risk for cross-site scripting (XSS) vulnerabilities. The absence of any recorded vulnerabilities in its history is positive, but it should not lead to complacency, as the static analysis clearly indicates latent risks that could be exploited.  Overall, this plugin requires immediate attention to address the unprotected entry points and unsanitized data flows to mitigate significant security risks.",[1013,1015,1018,1021],{"reason":1014,"points":112},"Unprotected AJAX handler found",{"reason":1016,"points":1017},"High severity taint flows identified",12,{"reason":1019,"points":1020},"Low percentage of properly escaped output",5,{"reason":1022,"points":1020},"Unserialize function used","2026-03-17T00:37:43.928Z",{"wat":1025,"direct":1038},{"assetPaths":1026,"generatorPatterns":1031,"scriptPaths":1032,"versionParams":1033},[1027,1028,1029,1030],"\u002Fwp-content\u002Fplugins\u002Ffootball-predictor\u002Fadmin\u002Fcss\u002Ffp-admin.css","\u002Fwp-content\u002Fplugins\u002Ffootball-predictor\u002Fadmin\u002Fjs\u002Ffp-admin.js","\u002Fwp-content\u002Fplugins\u002Ffootball-predictor\u002Fassets\u002Fcss\u002Ffp-frontend.css","\u002Fwp-content\u002Fplugins\u002Ffootball-predictor\u002Fassets\u002Fjs\u002Ffp-frontend.js",[],[1028,1030],[1034,1035,1036,1037],"football-predictor\u002Fadmin\u002Fcss\u002Ffp-admin.css?ver=","football-predictor\u002Fadmin\u002Fjs\u002Ffp-admin.js?ver=","football-predictor\u002Fassets\u002Fcss\u002Ffp-frontend.css?ver=","football-predictor\u002Fassets\u002Fjs\u002Ffp-frontend.js?ver=",{"cssClasses":1039,"htmlComments":1043,"htmlAttributes":1048,"restEndpoints":1058,"jsGlobals":1059,"shortcodeOutput":1061},[1040,1041,1042],"fp_group","fp_knockout","fp_prediction_deadline",[1044,1045,1046,1047],"\u003C!-- FOOTBALL PREDICTOR START -->","\u003C!-- FOOTBALL PREDICTOR END -->","\u003C!-- FOOTBALL PREDICTOR SHORTCODE START -->","\u003C!-- FOOTBALL PREDICTOR SHORTCODE END -->",[1049,1050,1051,1052,1053,1054,1055,1056,1057],"data-fp-user-id","data-fp-match-id","data-fp-home-goals","data-fp-away-goals","data-fp-home-penalties","data-fp-away-penalties","data-fp-prediction-id","data-fp-stage-id","data-fp-match-no",[],[1060],"fp_localize",[1062,1063,1064,1065,1066,1067],"[football_predictor_frontend]","[football_predictor_stats]","[football_predictor_groups]","[football_predictor_knockout]","[football_predictor_predictions]","[football_predictor_countdown]"]