{"id":243482,"date":"2025-09-02T11:57:25","date_gmt":"2025-09-02T11:57:25","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/snooker-org-api\/"},"modified":"2025-09-02T11:57:05","modified_gmt":"2025-09-02T11:57:05","slug":"match-results-for-snooker-org-api","status":"publish","type":"plugin","link":"https:\/\/cs.wordpress.org\/plugins\/match-results-for-snooker-org-api\/","author":23332979,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.5","stable_tag":"1.5","tested":"6.8.5","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"Match Results for snooker.org API","header_author":"Novak Uro\u0161evi\u0107","header_description":"Fetch data from snooker.org API and cache it.","assets_banners_color":"ffffff","last_updated":"2025-09-02 11:57:05","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/www.linkedin.com\/in\/novak-urosevic\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":225,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.5":{"tag":"1.5","author":"novakurosevic","date":"2025-09-02 11:57:05"}},"upgrade_notice":{"1.3":"<ul>\n<li>Code structure cleaned and cron naming standardized.<\/li>\n<li>Shortcode now uses prefixed method for consistency.<\/li>\n<\/ul>","1.0":"<p>Initial stable release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3354646,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3354646,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3354646,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3354646,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3354646,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3354646,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3354646,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3354646,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3354646,"resolution":"5","location":"assets","locale":""}},"screenshots":{"1":"Tabbed interface showing Previous, Current, and Upcoming matches.","2":"Seamless AJAX content loading for tabs.","3":"Plugin settings page for entering API Header Value."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[221,1556,146,247255,4776],"plugin_category":[37,52,59],"plugin_contributors":[247256],"plugin_business_model":[],"class_list":["post-243482","plugin","type-plugin","status-publish","hentry","plugin_tags-ajax","plugin_tags-api","plugin_tags-cache","plugin_tags-snooker","plugin_tags-sports","plugin_category-arts-and-entertainment","plugin_category-performance","plugin_category-utilities-and-tools","plugin_contributors-novakurosevic","plugin_committers-novakurosevic"],"banners":{"banner":"https:\/\/ps.w.org\/match-results-for-snooker-org-api\/assets\/banner-772x250.png?rev=3354646","banner_2x":"https:\/\/ps.w.org\/match-results-for-snooker-org-api\/assets\/banner-1544x500.png?rev=3354646","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/match-results-for-snooker-org-api\/assets\/icon-128x128.png?rev=3354646","icon_2x":"https:\/\/ps.w.org\/match-results-for-snooker-org-api\/assets\/icon-256x256.png?rev=3354646","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/match-results-for-snooker-org-api\/assets\/screenshot-1.png?rev=3354646","caption":"Tabbed interface showing Previous, Current, and Upcoming matches."},{"src":"https:\/\/ps.w.org\/match-results-for-snooker-org-api\/assets\/screenshot-2.png?rev=3354646","caption":"Seamless AJAX content loading for tabs."},{"src":"https:\/\/ps.w.org\/match-results-for-snooker-org-api\/assets\/screenshot-3.png?rev=3354646","caption":"Plugin settings page for entering API Header Value."},{"src":"https:\/\/ps.w.org\/match-results-for-snooker-org-api\/assets\/screenshot-4.png?rev=3354646","caption":""},{"src":"https:\/\/ps.w.org\/match-results-for-snooker-org-api\/assets\/screenshot-5.png?rev=3354646","caption":""}],"raw_content":"<!--section=description-->\n<p>Match Results for snooker.org API fetches snooker match data from the Snooker.org API and caches it to improve performance.<\/p>\n\n<p>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.<\/p>\n\n<p>It displays previous, current, and upcoming matches using tabs with AJAX loading for a smooth user experience.<\/p>\n\n<p>The plugin reduces API calls and speeds up your site by caching data temporarily.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>This plugin connects to the external API at Snooker.org <strong>only<\/strong> after the user provides the required Header Value (X-Requested-By). No personal data is collected, stored, or sent by this plugin.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Fetch match data from Snooker.org API.<\/li>\n<li>Show Previous, Current, and Upcoming matches.<\/li>\n<li>Smooth AJAX-powered tab switching.<\/li>\n<li>Lightweight caching system to minimize API calls.<\/li>\n<li>Easy-to-use shortcode: <code>[match_results_for_snooker_org_api]<\/code>.<\/li>\n<li>Cron-based caching for efficient performance.<\/li>\n<li>Admin settings page for entering API Header Value.<\/li>\n<\/ul>\n\n<h3>Notes<\/h3>\n\n<ul>\n<li>Cached data expires every 10 minutes for recent matches and every week for long-term data.<\/li>\n<li>AJAX is used for smooth tab switching without reloading the page.<\/li>\n<li>Ensure your server can execute WP-Cron events for scheduled updates.<\/li>\n<\/ul>\n\n<h3>Support<\/h3>\n\n<p>For bug reports or feature requests, please open an issue on GitHub: https:\/\/github.com\/novakurosevic\/match-results-for-snooker-org-api\/issues<\/p>\n\n<h3>Author<\/h3>\n\n<p><strong>Novak Uro\u0161evi\u0107<\/strong>\n<a href=\"https:\/\/github.com\/novakurosevic\">GitHub<\/a> | <a href=\"https:\/\/www.linkedin.com\/in\/novak-urosevic\/\">LinkedIn<\/a><\/p>\n\n<p><strong>Important:<\/strong>\nTo use this plugin, you must request an API Header Value (X-Requested-By) by emailing <strong><code>webmaster@snooker.org<\/code><\/strong>.\nOnce received, enter this value in the plugin settings.<\/p>\n\n<h3>License<\/h3>\n\n<p>This plugin is licensed under the GPLv2 or later. See <code>LICENSE.md<\/code> for details.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Download the plugin zip file or clone the repository to your local machine.<\/li>\n<li>In your WordPress admin, go to <strong>Plugins &gt; Add New<\/strong>.<\/li>\n<li>Click <strong>Upload Plugin<\/strong> and upload the zip file.<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong> the plugin.<\/li>\n<li>Go to <strong>Settings &gt; Match Results for snooker.org API<\/strong> to configure the required API Header Value (X-Requested-By).<\/li>\n<li>Add the shortcode <code>[match_results_for_snooker_org_api]<\/code> to any post, page, or widget to display match data.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='how%20do%20i%20get%20the%20api%20header%20value%20%28x-requested-by%29%3F'><h3>How do I get the API Header Value (X-Requested-By)?<\/h3><\/dt>\n<dd><p>You must email the Snooker.org webmaster at <strong><code>webmaster@snooker.org<\/code><\/strong> to request access.<\/p><\/dd>\n<dt id='how%20do%20i%20display%20the%20matches%20on%20my%20site%3F'><h3>How do I display the matches on my site?<\/h3><\/dt>\n<dd><p>Use the shortcode <code>[match_results_for_snooker_org_api]<\/code> in any post, page, or widget.<\/p><\/dd>\n<dt id='can%20i%20customize%20the%20display%20of%20matches%3F'><h3>Can I customize the display of matches?<\/h3><\/dt>\n<dd><p>Currently, the plugin uses a tabbed interface with default styling. You can override the CSS by enqueueing your own styles in your theme.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.5<\/h4>\n\n<ul>\n<li>Removed img, js and css directories from assets directory and set them to plugin root directory<\/li>\n<\/ul>\n\n<h4>1.4<\/h4>\n\n<ul>\n<li>Fixed error in walkover message<\/li>\n<li>Fixed error in displaying powered by logo<\/li>\n<\/ul>\n\n<h4>1.3<\/h4>\n\n<ul>\n<li>Unified all cron hook names so that scheduled events, activation, and deactivation hooks use consistent naming.<\/li>\n<li>Added <code>mrfs_<\/code> prefix to all methods in MRFSSnookerOrgApiClient, including cron handlers and HTML output generation.<\/li>\n<li>Updated the shortcode to use the new <code>mrfs_<\/code> prefixed method for generating output.<\/li>\n<li>Ensured all include files are correctly loaded and exist.<\/li>\n<li>Fixed minor naming inconsistencies to improve readability and maintainability of the plugin code.<\/li>\n<li>Overall code structure cleaned for better clarity and easier future updates.<\/li>\n<\/ul>\n\n<h4>1.2<\/h4>\n\n<ul>\n<li>Removed \"plugin\" from plugin name everywhere.<\/li>\n<li>Changed links in file description.<\/li>\n<li>Changed slug name from snooker_org_plugin to match_results_for_snooker_org_api<\/li>\n<li>Changed screenshot images to resolution 1200px x 900px<\/li>\n<li>Added <code>mrfs_<\/code> prefix to many functions, JS code, and cache key names.<\/li>\n<\/ul>\n\n<h4>1.1<\/h4>\n\n<ul>\n<li>Added optional display of \"supported by Snooker.org\" logo at bottom of results display.<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>AJAX-based tab loading for matches.<\/li>\n<li>Lightweight caching system.<\/li>\n<li>Shortcode functionality.<\/li>\n<\/ul>","raw_excerpt":"Fetch data from the Snooker.org API and cache it to quickly display snooker match results.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/243482","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/cs.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/cs.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=243482"}],"author":[{"embeddable":true,"href":"https:\/\/cs.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/novakurosevic"}],"wp:attachment":[{"href":"https:\/\/cs.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=243482"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/cs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=243482"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/cs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=243482"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/cs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=243482"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/cs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=243482"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/cs.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=243482"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}