[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f11vErpXmDpQvYFRkikRPOiodTKdIEkjeQWHI207zzhw":3,"$fhHrzC2N777VsToMg10fNPHSJXQG3XQuxlp8pibAGjmE":298,"$fXIUyCpX6HDvC_faEC5dLdtgJ57c2Xc3rgmL1U2SO0LA":302},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":11,"last_updated":13,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":17,"homepage":23,"download_link":24,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27,"discovery_status":28,"vulnerabilities":29,"developer":30,"crawl_stats":26,"alternatives":36,"analysis":141,"fingerprints":277},"match-results-for-snooker-org-api","Match Results for snooker.org API","1.5","Novak Urošević","https:\u002F\u002Fprofiles.wordpress.org\u002Fnovakurosevic\u002F","\u003Cp>Match Results for snooker.org API fetches snooker match data from the Snooker.org API and caches it to improve performance.\u003C\u002Fp>\n\u003Cp>This plugin does not connect to the external API until the user explicitly provides their Header Value (X-Requested-By), which is obtained by contacting the Snooker.org webmaster.\u003C\u002Fp>\n\u003Cp>It displays previous, current, and upcoming matches using tabs with AJAX loading for a smooth user experience.\u003C\u002Fp>\n\u003Cp>The plugin reduces API calls and speeds up your site by caching data temporarily.\u003C\u002Fp>\n\u003Ch3>Privacy\u003C\u002Fh3>\n\u003Cp>This plugin connects to the external API at Snooker.org \u003Cstrong>only\u003C\u002Fstrong> after the user provides the required Header Value (X-Requested-By). No personal data is collected, stored, or sent by this plugin.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Fetch match data from Snooker.org API.\u003C\u002Fli>\n\u003Cli>Show Previous, Current, and Upcoming matches.\u003C\u002Fli>\n\u003Cli>Smooth AJAX-powered tab switching.\u003C\u002Fli>\n\u003Cli>Lightweight caching system to minimize API calls.\u003C\u002Fli>\n\u003Cli>Easy-to-use shortcode: \u003Ccode>[match_results_for_snooker_org_api]\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>Cron-based caching for efficient performance.\u003C\u002Fli>\n\u003Cli>Admin settings page for entering API Header Value.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Notes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Cached data expires every 10 minutes for recent matches and every week for long-term data.\u003C\u002Fli>\n\u003Cli>AJAX is used for smooth tab switching without reloading the page.\u003C\u002Fli>\n\u003Cli>Ensure your server can execute WP-Cron events for scheduled updates.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>For bug reports or feature requests, please open an issue on GitHub: https:\u002F\u002Fgithub.com\u002Fnovakurosevic\u002Fmatch-results-for-snooker-org-api\u002Fissues\u003C\u002Fp>\n\u003Ch3>Author\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Novak Urošević\u003C\u002Fstrong>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnovakurosevic\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fnovak-urosevic\u002F\" rel=\"nofollow ugc\">LinkedIn\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Important:\u003C\u002Fstrong>\u003Cbr \u002F>\nTo use this plugin, you must request an API Header Value (X-Requested-By) by emailing \u003Cstrong>\u003Ccode>webmaster@snooker.org\u003C\u002Fcode>\u003C\u002Fstrong>.\u003Cbr \u002F>\nOnce received, enter this value in the plugin settings.\u003C\u002Fp>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is licensed under the GPLv2 or later. See \u003Ccode>LICENSE.md\u003C\u002Fcode> for details.\u003C\u002Fp>\n","Fetch data from the Snooker.org API and cache it to quickly display snooker match results.",0,225,"2025-09-02T11:57:00.000Z","6.8.5","5.0","7.4",[18,19,20,21,22],"ajax","api","cache","snooker","sports","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmatch-results-for-snooker-org-api.1.5.zip",100,null,"2026-04-16T10:56:18.058Z","no_bundle",[],{"slug":31,"display_name":7,"profile_url":8,"plugin_count":32,"total_installs":11,"avg_security_score":25,"avg_patch_time_days":33,"trust_score":34,"computed_at":35},"novakurosevic",1,30,94,"2026-05-20T05:18:44.867Z",[37,56,78,101,122],{"slug":38,"name":39,"version":40,"author":41,"author_profile":42,"description":43,"short_description":44,"active_installs":11,"downloaded":45,"rating":11,"num_ratings":11,"last_updated":46,"tested_up_to":47,"requires_at_least":48,"requires_php":49,"tags":50,"homepage":53,"download_link":54,"security_score":55,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"hoeboe","Hoeboe","0.1.4","Twice Two Media","https:\u002F\u002Fprofiles.wordpress.org\u002Ftwicetwomedia\u002F","\u003Cp>Easily update WordPress transients in the background via AJAX to increase site speed and avoid long page load times. Hoeboe can be especially helpful with caching of large external API calls or heavy internal database queries.\u003C\u002Fp>\n\u003Cp>If you’ve used the WordPress Transients API, you already know how useful it can be with caching, page load, and site speed. If you’ve used transients to store data from external API calls or from heavy internal database queries, then you also know a few of its limitations. Namely, page load can be negatively impacted on the user session where a large transient gets updated.\u003C\u002Fp>\n\u003Cp>Hoeboe helps to solve this problem of the one-off user who has to deal with potentially long page load while your site refreshes a transient in the background. With Hoeboe, you can choose to update those large transients in the background via AJAX. Your users won’t notice anything different – other than possibly faster overall site speed.\u003C\u002Fp>\n","Easily update WordPress transients in the background via AJAX to increase site speed and avoid long page load times. Hoeboe can be especially helpful  &hellip;",1533,"2020-04-01T02:39:00.000Z","5.4.19","3.5","5.3",[18,19,20,51,52],"caching","transients","https:\u002F\u002Ftwicetwomedia.com\u002Fwordpress-plugins\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fhoeboe.0.1.4.zip",85,{"slug":57,"name":58,"version":59,"author":60,"author_profile":61,"description":62,"short_description":63,"active_installs":64,"downloaded":65,"rating":66,"num_ratings":67,"last_updated":68,"tested_up_to":69,"requires_at_least":70,"requires_php":49,"tags":71,"homepage":76,"download_link":77,"security_score":55,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"heartbeat-control","Heartbeat Control","2.0.1","WP Media","https:\u002F\u002Fprofiles.wordpress.org\u002Fwp_media\u002F","\u003Cp>Heartbeat Control by WP Rocket allows you to manage the frequency of the WordPress heartbeat API in a few clicks.\u003C\u002Fp>\n\u003Cp>The WordPress Heartbeat API is a great feature that provides real-time communication between the server and the browser when you are logged into your WordPress admin panel. It uses the file \u002Fwp-admin\u002Fadmin-ajax.php to run AJAX calls from the browser. By default, AJAX requests are sent every 15 seconds on post edit pages, and every 60 seconds on the dashboard.\u003C\u002Fp>\n\u003Cp>This is indeed helpful; but if you usually leave your WordPress admin open for long periods (for example when you write or edit posts), the AJAX requests from the API can pile up and generate high CPU usage, leading to server performance issues and even hosting account suspensions.\u003C\u002Fp>\n\u003Cp>With Heartbeat Control by WP Rocket, you can easily choose to limit or completely stop the activity of the WordPress Heartbeat API. You can also add rules for specific locations only (Dashboard, Frontend or Post Editor).\u003C\u002Fp>\n\u003Cp>To learn more about WordPress performance optimization and make your website faster, join our \u003Ca href=\"https:\u002F\u002Fwww.facebook.com\u002Fgroups\u002FWPRocketUsers\u002F\" rel=\"nofollow ugc\">WP Rocket Facebook Community\u003C\u002Fa>!\u003C\u002Fp>\n\u003Ch4>Related Plugins\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwp-rocket.me\u002F?utm_source=wordpress.org&utm_medium=referral&utm_campaign=HeartBeatPlugin\" rel=\"nofollow ugc\">WP Rocket\u003C\u002Fa>: Best caching plugin to speed-up your WordPress website.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Frocket-lazy-load\u002F\" rel=\"ugc\">Lazy Load by WP Rocket\u003C\u002Fa>: Best Lazy Load script to reduce the number of HTTP requests and improves the websites loading time.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fimagify\u002F\" rel=\"ugc\">Imagify\u003C\u002Fa>: Best Image Optimizer to speed up your website with lighter images.\u003C\u002Fli>\n\u003C\u002Ful>\n","Allows you to easily manage the frequency of the WordPress heartbeat API.",80000,1221037,84,68,"2023-08-31T13:23:00.000Z","6.3.8","3.6",[72,73,74,57,75],"admin-ajax","heartbeat","heartbeat-api","server-resources","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fheartbeat-control\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fheartbeat-control.2.0.1.zip",{"slug":79,"name":80,"version":81,"author":82,"author_profile":83,"description":84,"short_description":85,"active_installs":86,"downloaded":87,"rating":88,"num_ratings":89,"last_updated":90,"tested_up_to":14,"requires_at_least":91,"requires_php":92,"tags":93,"homepage":97,"download_link":98,"security_score":34,"vuln_count":99,"unpatched_count":11,"last_vuln_date":100,"fetched_at":27},"wp-rest-cache","WP REST Cache","2026.1.3","Acato","https:\u002F\u002Fprofiles.wordpress.org\u002Facato\u002F","\u003Cp>Are you facing speed issues, using the WordPress REST API? This plugin will allow WordPress to cache the responses of the REST API, making it much faster.\u003C\u002Fp>\n\u003Cp>This plugin offers:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Caching of all default WordPress REST API \u003Ccode>GET\u003C\u002Fcode>-endpoints.\u003C\u002Fli>\n\u003Cli>Caching of (custom) post type endpoints.\u003C\u002Fli>\n\u003Cli>Caching of (custom) taxonomy endpoints.\u003C\u002Fli>\n\u003Cli>Automated flushing of caches if (some of) its contents are edited.\u003C\u002Fli>\n\u003Cli>Manual flushing of all caches.\u003C\u002Fli>\n\u003Cli>Manual flushing of specific caches.\u003C\u002Fli>\n\u003Cli>A counter how many times a cache has been retrieved.\u003C\u002Fli>\n\u003Cli>Specifying after what time the cache should be timed out.\u003C\u002Fli>\n\u003Cli>Registering custom endpoints for caching.\u003C\u002Fli>\n\u003Cli>Automatic cache regeneration.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>WP REST Cache Pro\u003C\u002Fstrong>\u003Cbr \u002F>\nFor more advanced features, check out our \u003Ca href=\"https:\u002F\u002Fplugins.acato.nl\u002F\" rel=\"nofollow ugc\">WP REST Cache Pro\u003C\u002Fa> plugin:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Configure custom endpoints for caching through the wp-admin interface.\u003C\u002Fli>\n\u003Cli>Configure relationships within endpoints.\u003C\u002Fli>\n\u003Cli>No coding required.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Installation from within WordPress\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Visit ‘Plugins > Add New’ (or ‘My Sites > Network Admin > Plugins > Add New’ if you are on a multisite installation).\u003C\u002Fli>\n\u003Cli>Search for ‘WP REST Cache’.\u003C\u002Fli>\n\u003Cli>Activate the WP REST Cache plugin through the ‘Plugins’ menu in WordPress.\u003C\u002Fli>\n\u003Cli>Go to “after activation” below.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Installation manually\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Upload the \u003Ccode>wp-rest-cache\u003C\u002Fcode> folder to the \u003Ccode>\u002Fwp-content\u002Fplugins\u002F\u003C\u002Fcode> directory.\u003C\u002Fli>\n\u003Cli>Activate the WP REST Cache plugin through the ‘Plugins’ menu in WordPress.\u003C\u002Fli>\n\u003Cli>Go to “after activation” below.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>After activation\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Visit ‘Plugins > Must-Use’ (or ‘My Sites > Network Admin > Plugins > Must-Use’ if you are on a multisite installation).\u003C\u002Fli>\n\u003Cli>Check if the ‘WP REST Cache – Must-Use Plugin’ is there, if not copy the file \u003Ccode>wp-rest-cache.php\u003C\u002Fcode> from the \u003Ccode>\u002Fsources\u003C\u002Fcode> folder of the WP REST Cache Plugin to the folder \u003Ccode>\u002Fwp-content\u002Fmu-plugins\u002F\u003C\u002Fcode>.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Optionally:\u003C\u002Fstrong>\u003Cbr \u002F>\nThe default timeout for caches generated by the WP REST Cache plugin is set to 1 year. If you want to change this:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Visit ‘Settings > WP REST Cache’.\u003C\u002Fli>\n\u003Cli>Change the Cache timeout.\u003C\u002Fli>\n\u003C\u002Fol>\n","Enable caching of the WordPress REST API and auto-flush caches upon wp-admin editing.",10000,372181,98,42,"2026-03-03T09:38:00.000Z","4.7","7.0",[19,20,94,95,96],"rest","rest-cache","wp-rest-api","https:\u002F\u002Fwww.acato.nl","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-rest-cache.2026.1.3.zip",2,"2026-03-23 00:00:00",{"slug":102,"name":103,"version":59,"author":104,"author_profile":105,"description":106,"short_description":107,"active_installs":108,"downloaded":109,"rating":25,"num_ratings":110,"last_updated":111,"tested_up_to":112,"requires_at_least":113,"requires_php":16,"tags":114,"homepage":118,"download_link":119,"security_score":120,"vuln_count":32,"unpatched_count":11,"last_vuln_date":121,"fetched_at":27},"wpgraphql-smart-cache","WPGraphQL Smart Cache","Jason Bahl","https:\u002F\u002Fprofiles.wordpress.org\u002Fjasonbahl\u002F","\u003Cp>Do you want your API data \u003Cem>fast\u003C\u002Fem> or \u003Cem>accurate\u003C\u002Fem>? With WPGraphQL Smart Cache, you can have both.\u003C\u002Fp>\n\u003Cp>WPGraphQL Smart Cache is a free, open-source WordPress plugin that provides support for caching and cache invalidation of WPGraphQL Queries.\u003C\u002Fp>\n\u003Cp>To get the most out of this plugin, we recommend using GET requests with Network Caching, which requires your WordPress install to be on a \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-graphql\u002Fwp-graphql-smart-cache\u002Fblob\u002Fmain\u002Fdocs\u002Fnetwork-cache.md#supported-hosts\" rel=\"nofollow ugc\">supported host\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cem>BREAKING CHANGES:\u003C\u002Fem> We may make breaking changes in the future to improve functionality and experience. If we do, we will use semver to do so. Pay attention to release notes and upgrade notices before updating.\u003C\u002Fp>\n\u003Ch3>Video Overview\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fyoutu.be\u002Ft_y6q02q7K4\" rel=\"nofollow ugc\">\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Docs\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-graphql\u002Fwp-graphql-smart-cache#overview\" rel=\"nofollow ugc\">Overview\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-graphql\u002Fwp-graphql-smart-cache#-quick-start\" rel=\"nofollow ugc\">Quick Start\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Features\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-graphql\u002Fwp-graphql-smart-cache\u002Fblob\u002Fmain\u002Fdocs\u002Fnetwork-cache.md\" rel=\"nofollow ugc\">Network Cache\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-graphql\u002Fwp-graphql-smart-cache\u002Fblob\u002Fmain\u002Fdocs\u002Fobject-cache.md\" rel=\"nofollow ugc\">Object Cache\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-graphql\u002Fwp-graphql-smart-cache\u002Fblob\u002Fmain\u002Fdocs\u002Fpersisted-queries.md\" rel=\"nofollow ugc\">Persisted Queries\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-graphql\u002Fwp-graphql-smart-cache\u002Fblob\u002Fmain\u002Fdocs\u002Fcache-invalidation.md\" rel=\"nofollow ugc\">Cache Invalidation\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-graphql\u002Fwp-graphql-smart-cache\u002Fblob\u002Fmain\u002Fdocs\u002Fextending.md\" rel=\"nofollow ugc\">Extending \u002F Customizing Functionality\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-graphql\u002Fwp-graphql-smart-cache#faq--troubleshooting\" rel=\"nofollow ugc\">FAQ and Troubleshooting\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-graphql\u002Fwp-graphql-smart-cache#known-issues\" rel=\"nofollow ugc\">Known Issues\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-graphql\u002Fwp-graphql-smart-cache#providing-feedback\" rel=\"nofollow ugc\">Providing Feedback\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Upgrading\u003C\u002Fh4>\n\u003Cp>It is recommended that anytime you want to update WPGraphQL Smart Cache that you get familiar with what’s changed in the release.\u003C\u002Fp>\n\u003Cp>WPGraphQL Smart Cache publishes \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-graphql\u002Fwp-graphql-smart-cache\u002Freleases\" rel=\"nofollow ugc\">release notes on GitHub\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>WPGraphQL Smart Cache will follow Semver versioning.\u003C\u002Fp>\n\u003Cp>The summary of Semver versioning is as follows:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cem>MAJOR\u003C\u002Fem> version when you make incompatible API changes,\u003C\u002Fli>\n\u003Cli>\u003Cem>MINOR\u003C\u002Fem> version when you add functionality in a backwards compatible manner, and\u003C\u002Fli>\n\u003Cli>\u003Cem>PATCH\u003C\u002Fem> version when you make backwards compatible bug fixes.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You can read more about the details of Semver at \u003Ca href=\"https:\u002F\u002Fsemver.org\" rel=\"nofollow ugc\">semver.org\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Privacy Policy\u003C\u002Fh3>\n\u003Cp>WPGraphQL Smart Cache uses \u003Ca href=\"https:\u002F\u002Fappsero.com\" rel=\"nofollow ugc\">Appsero\u003C\u002Fa> SDK to collect some telemetry data upon user’s confirmation. This helps us to troubleshoot problems faster & make product improvements.\u003C\u002Fp>\n\u003Cp>Appsero SDK \u003Cstrong>does not gather any data by default.\u003C\u002Fstrong> The SDK only starts gathering basic telemetry data \u003Cstrong>when a user allows it via the admin notice\u003C\u002Fstrong>. We collect the data to ensure a great user experience for all our users.\u003C\u002Fp>\n\u003Cp>Integrating Appsero SDK \u003Cstrong>DOES NOT IMMEDIATELY\u003C\u002Fstrong> start gathering data, \u003Cstrong>without confirmation from users in any case.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Learn more about how \u003Ca href=\"https:\u002F\u002Fappsero.com\u002Fprivacy-policy\u002F\" rel=\"nofollow ugc\">Appsero collects and uses this data\u003C\u002Fa>.\u003C\u002Fp>\n","WPGraphQL Smart Cache is a WordPress plugin that provides fast, accurate API responses by intelligently caching and invalidating WPGraphQL queries.",7000,76147,4,"2025-12-12T01:06:00.000Z","6.9.4","6.0",[19,20,115,116,117],"performance","persisted-queries","wpgraphql","https:\u002F\u002Fgithub.com\u002Fwp-graphql\u002Fwp-graphql-smart-cache","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwpgraphql-smart-cache.2.0.1.zip",99,"2025-12-12 00:00:00",{"slug":123,"name":124,"version":125,"author":126,"author_profile":127,"description":128,"short_description":129,"active_installs":130,"downloaded":131,"rating":132,"num_ratings":133,"last_updated":134,"tested_up_to":92,"requires_at_least":135,"requires_php":136,"tags":137,"homepage":139,"download_link":140,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"dynamic-front-end-heartbeat-control","Dynamic Front-End Heartbeat Control","1.2.998.1","Codeloghin","https:\u002F\u002Fprofiles.wordpress.org\u002Floghin\u002F","\u003Cp>Your all-in-one solution for intelligently optimizing the WordPress Heartbeat API.\u003C\u002Fp>\n\u003Cp>This plugin stabilizes server load and improves the browsing experience during traffic spikes by dynamically controlling the Heartbeat interval based on real site conditions. Instead of relying on outdated manual tuning or fixed settings, it continuously analyzes factors such as user activity, server environment, and page complexity to determine the most efficient configuration for your website.\u003C\u002Fp>\n\u003Cp>Designed to work seamlessly alongside most performance and caching plugins, it introduces an adaptive approach that helps your WordPress installation operate at its full potential without adding unnecessary server overhead.\u003C\u002Fp>\n\u003Cp>Once activated, the plugin begins optimizing immediately—no configuration required in most cases. It intelligently adjusts the Heartbeat interval in real time, responding to changes in traffic and workload to maintain stability, responsiveness, and optimal performance.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>✅ Dynamically optimizes the WordPress Heartbeat API using real-time site conditions\u003Cbr \u002F>\n✅ Smart automation with optional manual control when you need it\u003Cbr \u002F>\n✅ Custom intervals for the Admin Dashboard and Editor environments\u003Cbr \u002F>\n✅ Option to completely disable Heartbeat with a single click\u003Cbr \u002F>\n✅ Advanced real-time decision making with minimal server overhead that completely prioritises user experience and website speed\u003Cbr \u002F>\n✅ One-click database cleanup to remove unnecessary clutter\u003Cbr \u002F>\n✅ Works alongside most caching and performance plugins\u003Cbr \u002F>\n✅ Multisite compatible\u003Cbr \u002F>\n✅ Install, activate, done — performance improvements begin immediately\u003C\u002Fp>\n\u003Cp>For optimal results, it is recommended to use this plugin alongside a caching solution and properly optimized pages (minified CSS and JavaScript, compressed and optimized images, etc.).\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Additional Important Information:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Some caching plugins provide manual control over the WordPress Heartbeat API. For best results, allow this plugin to manage the heartbeat intervals automatically. You may continue using other performance features from those plugins, but avoid enabling their manual heartbeat controls.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>GDPR-friendly design:\u003C\u002Fstrong> The plugin may set a lightweight cookie used solely for visitor counting and abuse prevention (rate limiting). No personal data is collected, tracked, or shared with third parties.\u003C\u002Fp>\n\u003Cp>Rigorously tested to maintain reliable performance during high-traffic spikes and under constrained server resources.\u003C\u002Fp>\n","An enhanced solution to optimize the performance of your WordPress website and automatically achieve the best Heartbeat API values.",1000,12699,96,12,"2026-03-07T14:30:00.000Z","5.5","7.2",[72,73,74,115,138],"site-health","https:\u002F\u002Fheartbeat.support","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdynamic-front-end-heartbeat-control.1.2.998.1.zip",{"attackSurface":142,"codeSignals":205,"taintFlows":240,"riskAssessment":267,"analyzedAt":276},{"hooks":143,"ajaxHandlers":173,"restRoutes":194,"shortcodes":195,"cronEvents":200,"entryPointCount":204,"unprotectedCount":11},[144,150,154,160,163,167,170],{"type":145,"name":146,"callback":147,"file":148,"line":149},"action","admin_notices","mrfs_admin_notices","includes\\MRFSAdminPage.php",36,{"type":145,"name":151,"callback":152,"file":153,"line":67},"plugins_loaded","init","includes\\MRFSSnookerOrgAjaxHandlers.php",{"type":155,"name":156,"callback":157,"file":158,"line":159},"filter","cron_schedules","closure","match-results-for-snooker-org-api.php",29,{"type":145,"name":161,"callback":152,"file":158,"line":162},"admin_menu",48,{"type":145,"name":164,"callback":165,"file":158,"line":166},"wp_enqueue_scripts","mrfs_enqueue_assets",80,{"type":145,"name":168,"callback":157,"file":158,"line":169},"snooker_org_cron_event_10_minutes",83,{"type":145,"name":171,"callback":157,"file":158,"line":172},"snooker_weekly_cron_event",87,[174,180,182,186,188,192],{"action":175,"nopriv":176,"callback":177,"hasNonce":178,"hasCapCheck":176,"file":153,"line":179},"mrfs_load_previous_matches",false,"mrfs_load_previous_matches_callback",true,20,{"action":175,"nopriv":178,"callback":177,"hasNonce":178,"hasCapCheck":176,"file":153,"line":181},21,{"action":183,"nopriv":176,"callback":184,"hasNonce":178,"hasCapCheck":176,"file":153,"line":185},"mrfs_load_current_matches","mrfs_load_current_matches_callback",23,{"action":183,"nopriv":178,"callback":184,"hasNonce":178,"hasCapCheck":176,"file":153,"line":187},24,{"action":189,"nopriv":176,"callback":190,"hasNonce":178,"hasCapCheck":176,"file":153,"line":191},"mrfs_load_upcoming_matches","mrfs_load_upcoming_matches_callback",26,{"action":189,"nopriv":178,"callback":190,"hasNonce":178,"hasCapCheck":176,"file":153,"line":193},27,[],[196],{"tag":197,"callback":198,"file":158,"line":199},"match_results_for_snooker_org_api","mrfs_snooker_org_api_shortcode",109,[201,203],{"hook":168,"callback":168,"file":158,"line":202},95,{"hook":171,"callback":171,"file":158,"line":88},7,{"dangerousFunctions":206,"sqlUsage":207,"outputEscaping":209,"fileOperations":11,"externalRequests":32,"nonceChecks":204,"capabilityChecks":11,"bundledLibraries":239},[],{"prepared":11,"raw":11,"locations":208},[],{"escaped":33,"rawEcho":210,"locations":211},13,[212,215,217,219,221,223,225,227,229,231,233,235,237],{"file":148,"line":213,"context":214},151,"raw output",{"file":148,"line":216,"context":214},156,{"file":148,"line":218,"context":214},158,{"file":148,"line":220,"context":214},164,{"file":148,"line":222,"context":214},170,{"file":148,"line":224,"context":214},179,{"file":148,"line":226,"context":214},181,{"file":148,"line":228,"context":214},190,{"file":148,"line":230,"context":214},192,{"file":148,"line":232,"context":214},199,{"file":148,"line":234,"context":214},208,{"file":148,"line":236,"context":214},220,{"file":148,"line":238,"context":214},223,[],[241,259],{"entryPoint":242,"graph":243,"unsanitizedCount":11,"severity":258},"render (includes\\MRFSAdminPage.php:52)",{"nodes":244,"edges":256},[245,250],{"id":246,"type":247,"label":248,"file":148,"line":249},"n0","source","$_POST (x2)",105,{"id":251,"type":252,"label":253,"file":148,"line":254,"wp_function":255},"n1","sink","update_option() [Settings Manipulation]",107,"update_option",[257],{"from":246,"to":251,"sanitized":178},"low",{"entryPoint":260,"graph":261,"unsanitizedCount":11,"severity":258},"\u003CMRFSAdminPage> (includes\\MRFSAdminPage.php:0)",{"nodes":262,"edges":265},[263,264],{"id":246,"type":247,"label":248,"file":148,"line":249},{"id":251,"type":252,"label":253,"file":148,"line":254,"wp_function":255},[266],{"from":246,"to":251,"sanitized":178},{"summary":268,"deductions":269},"The \"match-results-for-snooker-org-api\" plugin version 1.5 exhibits a generally strong security posture, primarily due to its robust use of prepared statements for all SQL queries and a significant percentage of properly escaped output. The plugin also incorporates nonce checks for its entry points and lacks concerning code signals like dangerous functions or file operations. The absence of any recorded vulnerabilities in its history further suggests a well-maintained and secure plugin.\n\nHowever, a notable area for improvement lies in its capability checks. The analysis indicates zero capability checks across all identified entry points. While AJAX and other handlers are protected by nonces, the lack of explicit user capability verification means that any authenticated user, regardless of their role or permissions, could potentially interact with these functions. This could become a concern if the plugin's AJAX endpoints or shortcodes perform sensitive operations or expose restricted data. Additionally, the plugin's single external HTTP request, while not inherently risky without further context, warrants attention to ensure it's making requests to trusted and secure endpoints.\n\nIn conclusion, the plugin is commendably built with secure coding practices concerning data handling and output. The main weakness is the lack of capability checks, which presents a potential avenue for privilege escalation or unauthorized access if the plugin's functionalities are not inherently public-facing. Users should be aware of this limitation, especially if the plugin handles sensitive match data.",[270,273],{"reason":271,"points":272},"No capability checks on entry points",10,{"reason":274,"points":275},"30% of output not properly escaped",6,"2026-03-17T06:58:32.983Z",{"wat":278,"direct":287},{"assetPaths":279,"generatorPatterns":282,"scriptPaths":283,"versionParams":284},[280,281],"\u002Fwp-content\u002Fplugins\u002Fmatch-results-for-snooker-org-api\u002Fcss\u002Fmrfs-snooker-org-style.css","\u002Fwp-content\u002Fplugins\u002Fmatch-results-for-snooker-org-api\u002Fjs\u002Fmrfs-snooker-org.js",[],[281],[285,286],"match-results-for-snooker-org-api\u002Fcss\u002Fmrfs-snooker-org-style.css?ver=","match-results-for-snooker-org-api\u002Fjs\u002Fmrfs-snooker-org.js?ver=",{"cssClasses":288,"htmlComments":290,"htmlAttributes":291,"restEndpoints":292,"jsGlobals":293,"shortcodeOutput":295},[289],"snooker-org-error",[],[],[],[294],"mrfs_ajax_object",[296,297],"\u003Cdiv class=\"snooker-org-error\">Snooker.org Header Value (X-Requested-By) is not defined. Please configure the plugin settings.\u003C\u002Fdiv>","\u003Ch3>There is no data from Snooker.org.\u003C\u002Fh3>",{"error":178,"url":299,"statusCode":300,"statusMessage":301,"message":301},"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Fmatch-results-for-snooker-org-api\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":32,"versions":303},[304],{"version":6,"download_url":24,"svn_tag_url":305,"released_at":26,"has_diff":176,"diff_files_changed":306,"diff_lines":26,"trac_diff_url":26,"vulnerabilities":307,"is_current":178},"https:\u002F\u002Fplugins.svn.wordpress.org\u002Fmatch-results-for-snooker-org-api\u002Ftags\u002F1.5\u002F",[],[]]