[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fhmc4aZz8Av_9qvaewhkyahhoT07U53Pl8tuuel01Z2Q":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":11,"unpatched_count":11,"last_vuln_date":27,"fetched_at":28,"vulnerabilities":29,"developer":30,"crawl_stats":27,"alternatives":34,"analysis":125,"fingerprints":381},"court-booking-system","Court Booking System","3.0.0","michelebru","https:\u002F\u002Fprofiles.wordpress.org\u002Fmichelebru\u002F","\u003Cp>\u003Cstrong>Court Booking System\u003C\u002Fstrong> is a comprehensive WordPress plugin designed for tennis clubs, padel centers, and multi-sport facilities. Manage court bookings, instructors, and revenue all from your WordPress dashboard.\u003C\u002Fp>\n\u003Ch4>Key Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Flexible Court Configuration\u003C\u002Fstrong> – Support for 1-100 courts\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Three Booking Types\u003C\u002Fstrong> – Regular matches, lessons with instructors, and tournaments\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Instructor Management\u003C\u002Fstrong> – Add instructors with revenue sharing percentages\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Revenue Tracking\u003C\u002Fstrong> – Detailed reports by booking type and instructor\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Mobile-Friendly Frontend\u003C\u002Fstrong> – Public calendar optimized for smartphones\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Customizable Operating Hours\u003C\u002Fstrong> – Set opening and closing times\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Payment Tracking\u003C\u002Fstrong> – Track individual player payments with quick toggle\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Multiple Participants\u003C\u002Fstrong> – Up to 4 players per booking with optional phone numbers\u003C\u002Fli>\n\u003Cli>\u003Cstrong>US Dollar Currency\u003C\u002Fstrong> – All bookings in USD\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Auto-Refresh\u003C\u002Fstrong> – Frontend calendar updates every 100 seconds\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Perfect For\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Tennis clubs\u003C\u002Fli>\n\u003Cli>Padel centers\u003C\u002Fli>\n\u003Cli>Racquet sports facilities\u003C\u002Fli>\n\u003Cli>Multi-court sports complexes\u003C\u002Fli>\n\u003Cli>Recreation centers\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Booking Types\u003C\u002Fh4>\n\u003Col>\n\u003Cli>\u003Cstrong>Regular Match\u003C\u002Fstrong> – 2-4 players (tennis singles\u002Fdoubles or padel)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Lesson\u003C\u002Fstrong> – 1-4 participants with assigned instructor\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Tournament\u002FExhibition\u003C\u002Fstrong> – Special events with optional revenue tracking\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Frontend Calendar\u003C\u002Fh4>\n\u003Cp>Display court availability to visitors using the shortcode:\u003Cbr \u002F>\n    [padel_booking]\u003C\u002Fp>\n\u003Cp>Features:\u003Cbr \u002F>\n* Real-time availability display\u003Cbr \u002F>\n* Color-coded booking types\u003Cbr \u002F>\n* Date selector\u003Cbr \u002F>\n* Auto-refresh every 100 seconds\u003Cbr \u002F>\n* Responsive mobile design\u003Cbr \u002F>\n* Customizable booking message\u003C\u002Fp>\n\u003Ch4>Backend Management\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Intuitive booking interface\u003C\u002Fli>\n\u003Cli>Quick payment status toggle\u003C\u002Fli>\n\u003Cli>Daily revenue totals\u003C\u002Fli>\n\u003Cli>Booking search and filters\u003C\u002Fli>\n\u003Cli>Edit and delete bookings\u003C\u002Fli>\n\u003Cli>Instructor revenue reports\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Reports\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Revenue by booking type\u003C\u002Fli>\n\u003Cli>Revenue by instructor\u003C\u002Fli>\n\u003Cli>Total bookings count\u003C\u002Fli>\n\u003Cli>Customizable date ranges\u003C\u002Fli>\n\u003Cli>Export-ready data\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>For support, feature requests, or bug reports:\u003Cbr \u002F>\n* Visit: https:\u002F\u002Ffreecmsplugins.com\u003Cbr \u002F>\n* Documentation: Available on plugin website\u003C\u002Fp>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>Developed by Michele BRUNO\u003Cbr \u002F>\nWebsite: https:\u002F\u002Ffreecmsplugins.com\u003C\u002Fp>\n\u003Ch3>Privacy Policy\u003C\u002Fh3>\n\u003Cp>This plugin does not collect, store, or transmit any personal data outside your WordPress installation. All booking information is stored in your WordPress database.\u003C\u002Fp>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is licensed under the GPL v2 or later.\u003C\u002Fp>\n","Complete booking system for tennis and padel courts with flexible time slots, instructor management, and revenue tracking.",0,147,100,1,"2026-02-22T10:31:00.000Z","6.9.4","5.0","7.2",[20,21,22,23,24],"booking","court","padel","sports","tennis","https:\u002F\u002Ffreecmsplugins.com\u002Fcourt-booking-system","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcourt-booking-system.3.0.0.zip",null,"2026-03-15T15:16:48.613Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":14,"total_installs":11,"avg_security_score":13,"avg_patch_time_days":31,"trust_score":32,"computed_at":33},30,94,"2026-04-05T03:25:07.808Z",[35,56,75,91,107],{"slug":36,"name":37,"version":38,"author":39,"author_profile":40,"description":41,"short_description":42,"active_installs":43,"downloaded":44,"rating":13,"num_ratings":45,"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":27,"fetched_at":28},"tennisthor","Tennis booking system, Sport tournament management – TennisThor","1.2.1","TennisThor","https:\u002F\u002Fprofiles.wordpress.org\u002Ftennisthor\u002F","\u003Cp>Tennisthor plugin comes with different functionality for sports booking system and sport tournament management.\u003C\u002Fp>\n\u003Cp>This is how it works:\u003Cbr \u002F>\n– Install plugin in wordpress admin\u003Cbr \u002F>\n– set some configuration for club\u003Cbr \u002F>\n– register your club in admin\u003Cbr \u002F>\n– create tournament under club for specific sport in admin\u003Cbr \u002F>\n– create group tournament & schema tournament in admin\u003Cbr \u002F>\n– create schedule for tournament in admin\u003C\u002Fp>\n\u003Cp>Users\u002Fplayers can register through frontend, after normal registration they can register them to any tournament from tournament list page & admin will create schedule for tournament so that user\u002Fplayer can see tournament schedule in frontend with many detail of tournament in tournament detail page. User\u002Fplayer can see result of their game & other players game of his tournament after finish game.\u003C\u002Fp>\n\u003Ch4>Features and Benefits\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Facility booking\u003C\u002Fli>\n\u003Cli>Clients\u003C\u002Fli>\n\u003Cli>Messages & Email\u003C\u002Fli>\n\u003Cli>Clients club cards\u003C\u002Fli>\n\u003Cli>Clubs\u003C\u002Fli>\n\u003Cli>Courts\u002FFacility – 15,30,45,60,120 minutes time line, permanent training reservation, abonament reservation\u003C\u002Fli>\n\u003Cli>Staff\u003C\u002Fli>\n\u003Cli>Permission for staff\u003C\u002Fli>\n\u003Cli>Reports\u003C\u002Fli>\n\u003Cli>Tournaments management. Groups or Elimination Tournaments\u003C\u002Fli>\n\u003Cli>Players Ratings\u003C\u002Fli>\n\u003Cli>Teams\u003C\u002Fli>\n\u003Cli>Tournament schedule\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fplugin.bgtenniscenter.com\u002F\" rel=\"nofollow ugc\">Demo Reservation\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Login as Customer\u003Cbr \u002F>\nEmail: demo_user@tennisthor.com\u003Cbr \u002F>\nPassword: 732353\u003C\u002Fp>\n\u003Cp>Login as Club Owner\u003Cbr \u002F>\nEmail: demo_admin@tennisthor.com\u003Cbr \u002F>\nPassword: Demo345KK\u003C\u002Fp>\n\u003Cp>Configurations\u003Cbr \u002F>\n– Set menu in admin > Appearance > menu according to page created by our plugin automatically for tournaments etc…\u003Cbr \u002F>\n– Go to Configuration page in plugin enter email & password to authenticate for use of this plugin.\u003Cbr \u002F>\n– Select club from dropdown in Configuration page itself.\u003Cbr \u002F>\n– Admin can create tournaments, courts & other required functionality from admin plugin menu “TennisThor”\u003C\u002Fp>\n\u003Ch4>Available Languages\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>English ( en_US )\u003C\u002Fli>\n\u003Cli>Deutsche ( de_DE )\u003C\u002Fli>\n\u003Cli>Bulgarian ( bg_BG )\u003C\u002Fli>\n\u003Cli>Français ( fr_FR ) – We used google translate, please email us if you see texts that have not been translated correctly\u003C\u002Fli>\n\u003Cli>Český ( cz_CZ )- We used google translate, please email us if you see texts that have not been translated correctly\u003C\u002Fli>\n\u003Cli>Italiana ( it_IT )- We used google translate, please email us if you see texts that have not been translated correctly\u003C\u002Fli>\n\u003Cli>Española ( es_ES )- We used google translate, please email us if you see texts that have not been translated correctly\u003C\u002Fli>\n\u003Cli>Русский ( ru_RU )- We used google translate, please email us if you see texts that have not been translated correctly\u003C\u002Fli>\n\u003Cli>Other languages – please email us if you want to use another language\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Sport Presets Included\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Handball\u003C\u002Fli>\n\u003Cli>Ice Hockey\u003C\u002Fli>\n\u003Cli>Lacrosse\u003C\u002Fli>\n\u003Cli>Netball\u003C\u002Fli>\n\u003Cli>Paddle\u003C\u002Fli>\n\u003Cli>Snooker\u003C\u002Fli>\n\u003Cli>Softball\u003C\u002Fli>\n\u003Cli>Squash\u003C\u002Fli>\n\u003Cli>Table Tennis\u003C\u002Fli>\n\u003Cli>Tennis\u003C\u002Fli>\n\u003Cli>Volleyball\u003C\u002Fli>\n\u003Cli>Water Polo\u003C\u002Fli>\n\u003C\u002Ful>\n","Tennis court bookings for tennis courts & other sports such as table tennis, football etc. Facility booking system. Sport tournament management so &hellip;",20,3849,2,"2024-05-11T05:20:00.000Z","6.5.8","5.9.3","7.4",[23,24,51,36,52],"tennis-booking","tournaments","http:\u002F\u002Fwordpress.org\u002Fplugins\u002Ftennisthor\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftennisthor.1.2.1.zip",92,{"slug":57,"name":58,"version":59,"author":60,"author_profile":61,"description":62,"short_description":63,"active_installs":11,"downloaded":64,"rating":11,"num_ratings":11,"last_updated":65,"tested_up_to":16,"requires_at_least":66,"requires_php":67,"tags":68,"homepage":73,"download_link":74,"security_score":13,"vuln_count":11,"unpatched_count":11,"last_vuln_date":27,"fetched_at":28},"hold-my-court","Hold My Court","1.0.1","gnault","https:\u002F\u002Fprofiles.wordpress.org\u002Fgnault\u002F","\u003Cp>\u003Cstrong>Hold My Court\u003C\u002Fstrong> is a simple, lightweight WordPress plugin that enables clubs, HOAs, and community organizations to manage reservations for multiple courts or activity spaces.\u003C\u002Fp>\n\u003Cp>Perfect for tennis, pickleball, bocce, horseshoes, racquetball, or any other court-based activity, this plugin provides an affordable, easy-to-use alternative to expensive SaaS booking platforms. With \u003Cstrong>Hold My Court\u003C\u002Fstrong>, you keep full control of your reservations directly on your own WordPress website.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Reserve multiple courts with customizable time slots.\u003C\u002Fli>\n\u003Cli>Works for tennis, pickleball, bocce, horseshoes, and other activities.\u003C\u002Fli>\n\u003Cli>Tailored for clubs and HOAs of all sizes.\u003C\u002Fli>\n\u003Cli>Lightweight and simple — no bloated features or complexity.\u003C\u002Fli>\n\u003Cli>Affordable one-time purchase, no recurring SaaS costs.\u003C\u002Fli>\n\u003Cli>Keep full control of your reservations within WordPress.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The goal is to provide clubs with a modern, affordable booking system that is easy for admins to set up and intuitive for members to use.\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>This plugin is provided free via WordPress.org. Support is offered on a \u003Cstrong>best-effort basis\u003C\u002Fstrong> through the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fhold-my-court\" rel=\"ugc\">WordPress.org Support Forum\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Free support includes:\u003Cbr \u002F>\n* Basic installation and setup help\u003Cbr \u002F>\n* Bug\u002Fsecurity fixes\u003Cbr \u002F>\n* Updates for WordPress compatibility\u003C\u002Fp>\n","Lightweight court reservation plugin for clubs and HOAs. Manage tennis, pickleball, bocce, horseshoes, and more.",285,"2025-12-06T22:23:00.000Z","5.3","7.0",[69,70,71,72,24],"club-management","court-booking","pickleball","reservations","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fhold-my-court.1.0.1.zip",{"slug":76,"name":77,"version":78,"author":79,"author_profile":80,"description":81,"short_description":82,"active_installs":11,"downloaded":83,"rating":11,"num_ratings":11,"last_updated":73,"tested_up_to":84,"requires_at_least":85,"requires_php":49,"tags":86,"homepage":88,"download_link":89,"security_score":13,"vuln_count":11,"unpatched_count":11,"last_vuln_date":27,"fetched_at":90},"sports-court-designer","Sports Court Designer","1.7.1","hayksaakian","https:\u002F\u002Fprofiles.wordpress.org\u002Fhayksaakian\u002F","\u003Cp>Sports Court Designer is a free, open-source WordPress plugin that allows construction companies to embed an interactive sports court designer on their website. Clients can preview different color combinations for tennis, basketball, and pickleball courts in real-time.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Perfect for:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Court construction companies\u003Cbr \u002F>\n* Sports facility contractors\u003Cbr \u002F>\n* Athletic surface installers\u003Cbr \u002F>\n* Recreation center planners\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Key Features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Three Court Types\u003C\u002Fstrong> – Tennis, Basketball, and Pickleball courts\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Real-time Color Preview\u003C\u002Fstrong> – Instant visual feedback as colors are selected\u003C\u002Fli>\n\u003Cli>\u003Cstrong>17 Professional Colors\u003C\u002Fstrong> – Industry-standard court colors including LEED-certified options\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Company Branding\u003C\u002Fstrong> – Add your company logo to all court designs\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Download Designs\u003C\u002Fstrong> – Clients can save court designs as PNG images\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Responsive Design\u003C\u002Fstrong> – Works perfectly on desktop, tablet, and mobile devices\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Multiple Integration Methods\u003C\u002Fstrong> – Use via shortcode or Gutenberg block\u003C\u002Fli>\n\u003Cli>\u003Cstrong>No External Dependencies\u003C\u002Fstrong> – All rendering done client-side for fast performance\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Available Colors Include:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Ice Blue, Light Blue, Blue\u003Cbr \u002F>\n* Light Green, Forest Green, Dark Green\u003Cbr \u002F>\n* Tournament Purple, Black, Maroon\u003Cbr \u002F>\n* Red, Brite Red, Orange, Yellow\u003Cbr \u002F>\n* Sandstone, Beige, Dove Gray\u003Cbr \u002F>\n* Brown (ColorPlus fusion blend)\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Customizable Court Areas:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>\u003Cem>Tennis Courts:\u003C\u002Fem>\u003Cbr \u002F>\n* Court (inner play area)\u003Cbr \u002F>\n* Border (outer area)\u003C\u002Fp>\n\u003Cp>\u003Cem>Basketball Courts:\u003C\u002Fem>\u003Cbr \u002F>\n* Court surface\u003Cbr \u002F>\n* Border\u003Cbr \u002F>\n* 3-Point Area\u003Cbr \u002F>\n* Key (paint area)\u003Cbr \u002F>\n* Top of Key\u003Cbr \u002F>\n* Center Court Circle\u003C\u002Fp>\n\u003Cp>\u003Cem>Pickleball Courts:\u003C\u002Fem>\u003Cbr \u002F>\n* Court\u003Cbr \u002F>\n* Border\u003Cbr \u002F>\n* Non-Volley Zone (kitchen)\u003C\u002Fp>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Via Shortcode:\u003C\u002Fstrong>\u003Cbr \u002F>\n    [court_designer type=”tennis”]\u003Cbr \u002F>\n    [court_designer type=”basketball”]\u003Cbr \u002F>\n    [court_designer type=”pickleball”]\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Via Gutenberg Block:\u003C\u002Fstrong>\u003Cbr \u002F>\n1. In the block editor, search for “Sports Court Designer”\u003Cbr \u002F>\n2. Add the block to your page\u003Cbr \u002F>\n3. Select the court type in the block settings\u003C\u002Fp>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is licensed under the GPL v2 or later.\u003C\u002Fp>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>Developed by Hayk Saakian\u003C\u002Fp>\n","Interactive sports court designer for tennis, basketball, pickleball, and combo courts with customizable colors for construction companies.",357,"6.8.5","5.8",[87,21,71,23,24],"basketball","https:\u002F\u002Fgithub.com\u002FHaykSaakian\u002Fwp-court-designer","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsports-court-designer.1.7.1.zip","2026-03-15T10:48:56.248Z",{"slug":92,"name":93,"version":94,"author":95,"author_profile":96,"description":97,"short_description":98,"active_installs":99,"downloaded":100,"rating":11,"num_ratings":11,"last_updated":101,"tested_up_to":102,"requires_at_least":103,"requires_php":73,"tags":104,"homepage":105,"download_link":106,"security_score":55,"vuln_count":11,"unpatched_count":11,"last_vuln_date":27,"fetched_at":28},"nd-sports-booking","Sports Booking","1.2","nicdark","https:\u002F\u002Fprofiles.wordpress.org\u002Fnicdark\u002F","\u003Ch4>Welcome to Sports Booking WP plugin\u003C\u002Fh4>\n\u003Cp>This plugin is an useful system to manage all your sport booking, search and filter them in a very simple way.\u003C\u002Fp>\n\u003Cp>In the [nd_spt_booking_form] shortcode, Stripe is used as the booking method. In the last step the user should enter his data through an iframe provided by Stripe. Once the operation has been completed, the user will be redirect to the thank you page. Below some useful links :\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fstripe.com\" rel=\"nofollow ugc\">Official site\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fstripe.com\u002Fdocs\" rel=\"nofollow ugc\">Information for developers\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fstripe.com\u002Flegal\" rel=\"nofollow ugc\">Terms and conditions\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Below some live preview demos\u003C\u002Fh4>\n\u003Cp>Click on the links below for view all plugin features in action:\u003C\u002Fp>\n","Perfect solution to manage your sports booking. For any sports activities. Show and manage your booking in the best way possible. sport WP plugin.",200,3547,"2024-12-02T14:32:00.000Z","6.7.5","4.5",[20,23],"https:\u002F\u002Fnicdark.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fnd-sports-booking.1.2.zip",{"slug":108,"name":109,"version":110,"author":111,"author_profile":112,"description":113,"short_description":114,"active_installs":13,"downloaded":115,"rating":11,"num_ratings":11,"last_updated":116,"tested_up_to":102,"requires_at_least":117,"requires_php":118,"tags":119,"homepage":123,"download_link":124,"security_score":13,"vuln_count":11,"unpatched_count":11,"last_vuln_date":27,"fetched_at":28},"viking-bookings","Viking Bookings","1.0.5","vikingbookings","https:\u002F\u002Fprofiles.wordpress.org\u002Fvikingbookings\u002F","\u003Cp>Viking Bookings offers an online booking platform for water sport centers; kitesurf, windsurf, wavesurf and SUP schools; and other weather-dependant activity providers. This plugin creates a seamless integration of our booking forms, to increase your conversion rates and create a smooth customer experience.\u003Cbr \u002F>\nThe plugin allows you to embed the Viking Bookings widget on your website with minimal effort and customise its appearance and settings right from the WordPress admin. Functionally, you can assign any button on your website to open a layover booking form out of your Viking Bookings system.\u003C\u002Fp>\n","Easily embed booking forms from your Viking Bookings account on your WordPress site.",2999,"2025-08-13T13:39:00.000Z","3.0","5.6",[120,121,108,111,122],"booking-software","viking","water-sports","http:\u002F\u002Fwordpress.org\u002Fplugins\u002Fviking-bookings\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fviking-bookings.1.0.5.zip",{"attackSurface":126,"codeSignals":211,"taintFlows":240,"riskAssessment":377,"analyzedAt":380},{"hooks":127,"ajaxHandlers":150,"restRoutes":203,"shortcodes":204,"cronEvents":209,"entryPointCount":210,"unprotectedCount":11},[128,134,138,142,146],{"type":129,"name":130,"callback":131,"file":132,"line":133},"action","plugins_loaded","init","padel-court-booking.php",45,{"type":129,"name":135,"callback":136,"file":132,"line":137},"admin_init","check_database_upgrade",49,{"type":129,"name":139,"callback":140,"file":132,"line":141},"wp_enqueue_scripts","enqueue_frontend_assets",246,{"type":129,"name":143,"callback":144,"file":132,"line":145},"admin_enqueue_scripts","enqueue_admin_assets",247,{"type":129,"name":147,"callback":148,"file":132,"line":149},"admin_menu","add_admin_menu",253,[151,157,159,163,167,171,175,179,183,187,191,195,199],{"action":152,"nopriv":153,"callback":154,"hasNonce":155,"hasCapCheck":153,"file":132,"line":156},"pcb_get_bookings",false,"ajax_get_bookings",true,256,{"action":152,"nopriv":155,"callback":154,"hasNonce":155,"hasCapCheck":153,"file":132,"line":158},257,{"action":160,"nopriv":153,"callback":161,"hasNonce":155,"hasCapCheck":155,"file":132,"line":162},"pcb_save_booking","ajax_save_booking",258,{"action":164,"nopriv":153,"callback":165,"hasNonce":155,"hasCapCheck":155,"file":132,"line":166},"pcb_delete_booking","ajax_delete_booking",259,{"action":168,"nopriv":153,"callback":169,"hasNonce":155,"hasCapCheck":155,"file":132,"line":170},"pcb_update_payment","ajax_update_payment",260,{"action":172,"nopriv":153,"callback":173,"hasNonce":155,"hasCapCheck":155,"file":132,"line":174},"pcb_toggle_payment","ajax_toggle_payment",261,{"action":176,"nopriv":153,"callback":177,"hasNonce":155,"hasCapCheck":155,"file":132,"line":178},"pcb_get_daily_total","ajax_get_daily_total",262,{"action":180,"nopriv":153,"callback":181,"hasNonce":155,"hasCapCheck":153,"file":132,"line":182},"pcb_check_slot_availability","ajax_check_slot_availability",263,{"action":184,"nopriv":153,"callback":185,"hasNonce":155,"hasCapCheck":155,"file":132,"line":186},"pcb_get_instructors","ajax_get_instructors",266,{"action":188,"nopriv":153,"callback":189,"hasNonce":155,"hasCapCheck":155,"file":132,"line":190},"pcb_save_instructor","ajax_save_instructor",267,{"action":192,"nopriv":153,"callback":193,"hasNonce":155,"hasCapCheck":155,"file":132,"line":194},"pcb_delete_instructor","ajax_delete_instructor",268,{"action":196,"nopriv":153,"callback":197,"hasNonce":155,"hasCapCheck":155,"file":132,"line":198},"pcb_get_revenue_report","ajax_get_revenue_report",271,{"action":200,"nopriv":153,"callback":201,"hasNonce":155,"hasCapCheck":155,"file":132,"line":202},"pcb_get_instructor_report","ajax_get_instructor_report",272,[],[205],{"tag":206,"callback":207,"file":132,"line":208},"padel_booking","render_booking_frontend",250,[],14,{"dangerousFunctions":212,"sqlUsage":213,"outputEscaping":234,"fileOperations":11,"externalRequests":11,"nonceChecks":237,"capabilityChecks":238,"bundledLibraries":239},[],{"prepared":214,"raw":215,"locations":216},16,7,[217,220,223,225,228,230,232],{"file":132,"line":218,"context":219},58,"$wpdb->get_results() with variable interpolation",{"file":132,"line":221,"context":222},155,"$wpdb->get_var() with variable interpolation",{"file":132,"line":224,"context":219},217,{"file":132,"line":226,"context":227},225,"$wpdb->query() with variable interpolation",{"file":132,"line":229,"context":227},233,{"file":132,"line":231,"context":222},734,{"file":132,"line":233,"context":219},741,{"escaped":235,"rawEcho":11,"locations":236},93,[],15,10,[],[241,259,271,281,293,303,313,323,342],{"entryPoint":242,"graph":243,"unsanitizedCount":11,"severity":258},"ajax_get_bookings (padel-court-booking.php:386)",{"nodes":244,"edges":256},[245,250],{"id":246,"type":247,"label":248,"file":132,"line":249},"n0","source","$_POST",403,{"id":251,"type":252,"label":253,"file":132,"line":254,"wp_function":255},"n1","sink","get_results() [SQLi]",405,"get_results",[257],{"from":246,"to":251,"sanitized":155},"low",{"entryPoint":260,"graph":261,"unsanitizedCount":11,"severity":258},"ajax_update_payment (padel-court-booking.php:534)",{"nodes":262,"edges":269},[263,265],{"id":246,"type":247,"label":248,"file":132,"line":264},544,{"id":251,"type":252,"label":266,"file":132,"line":267,"wp_function":268},"get_row() [SQLi]",558,"get_row",[270],{"from":246,"to":251,"sanitized":155},{"entryPoint":272,"graph":273,"unsanitizedCount":11,"severity":258},"ajax_get_daily_total (padel-court-booking.php:582)",{"nodes":274,"edges":279},[275,277],{"id":246,"type":247,"label":248,"file":132,"line":276},604,{"id":251,"type":252,"label":266,"file":132,"line":278,"wp_function":268},606,[280],{"from":246,"to":251,"sanitized":155},{"entryPoint":282,"graph":283,"unsanitizedCount":11,"severity":258},"ajax_check_slot_availability (padel-court-booking.php:620)",{"nodes":284,"edges":291},[285,287],{"id":246,"type":247,"label":248,"file":132,"line":286},627,{"id":251,"type":252,"label":288,"file":132,"line":289,"wp_function":290},"get_var() [SQLi]",643,"get_var",[292],{"from":246,"to":251,"sanitized":155},{"entryPoint":294,"graph":295,"unsanitizedCount":11,"severity":258},"ajax_toggle_payment (padel-court-booking.php:665)",{"nodes":296,"edges":301},[297,299],{"id":246,"type":247,"label":248,"file":132,"line":298},675,{"id":251,"type":252,"label":266,"file":132,"line":300,"wp_function":268},695,[302],{"from":246,"to":251,"sanitized":155},{"entryPoint":304,"graph":305,"unsanitizedCount":11,"severity":258},"ajax_get_revenue_report (padel-court-booking.php:818)",{"nodes":306,"edges":311},[307,309],{"id":246,"type":247,"label":248,"file":132,"line":308},828,{"id":251,"type":252,"label":253,"file":132,"line":310,"wp_function":255},865,[312],{"from":246,"to":251,"sanitized":155},{"entryPoint":314,"graph":315,"unsanitizedCount":11,"severity":258},"ajax_get_instructor_report (padel-court-booking.php:883)",{"nodes":316,"edges":321},[317,319],{"id":246,"type":247,"label":248,"file":132,"line":318},894,{"id":251,"type":252,"label":253,"file":132,"line":320,"wp_function":255},938,[322],{"from":246,"to":251,"sanitized":155},{"entryPoint":324,"graph":325,"unsanitizedCount":11,"severity":258},"\u003Cpadel-court-booking> (padel-court-booking.php:0)",{"nodes":326,"edges":338},[327,329,330,332,334,336],{"id":246,"type":247,"label":328,"file":132,"line":249},"$_POST (x3)",{"id":251,"type":252,"label":253,"file":132,"line":254,"wp_function":255},{"id":331,"type":247,"label":328,"file":132,"line":264},"n2",{"id":333,"type":252,"label":266,"file":132,"line":267,"wp_function":268},"n3",{"id":335,"type":247,"label":248,"file":132,"line":286},"n4",{"id":337,"type":252,"label":288,"file":132,"line":289,"wp_function":290},"n5",[339,340,341],{"from":246,"to":251,"sanitized":155},{"from":331,"to":333,"sanitized":155},{"from":335,"to":337,"sanitized":155},{"entryPoint":343,"graph":344,"unsanitizedCount":11,"severity":258},"\u003Cadmin-settings> (templates\\admin-settings.php:0)",{"nodes":345,"edges":371},[346,349,352,354,355,358,359,363,365,369],{"id":246,"type":247,"label":347,"file":348,"line":237},"$_POST['default_currency']","templates\\admin-settings.php",{"id":251,"type":252,"label":350,"file":348,"line":237,"wp_function":351},"update_option() [Settings Manipulation]","update_option",{"id":331,"type":247,"label":353,"file":348,"line":214},"$_POST['start_hour']",{"id":333,"type":252,"label":350,"file":348,"line":214,"wp_function":351},{"id":335,"type":247,"label":356,"file":348,"line":357},"$_POST['end_hour']",17,{"id":337,"type":252,"label":350,"file":348,"line":357,"wp_function":351},{"id":360,"type":247,"label":361,"file":348,"line":362},"n6","$_POST['number_of_courts']",18,{"id":364,"type":252,"label":350,"file":348,"line":362,"wp_function":351},"n7",{"id":366,"type":247,"label":367,"file":348,"line":368},"n8","$_POST['booking_message']",19,{"id":370,"type":252,"label":350,"file":348,"line":368,"wp_function":351},"n9",[372,373,374,375,376],{"from":246,"to":251,"sanitized":155},{"from":331,"to":333,"sanitized":155},{"from":335,"to":337,"sanitized":155},{"from":360,"to":364,"sanitized":155},{"from":366,"to":370,"sanitized":155},{"summary":378,"deductions":379},"The \"court-booking-system\" plugin v3.0.0 exhibits a strong security posture based on the provided static analysis and vulnerability history.  The code analysis reveals a commendable adherence to security best practices, with 100% of outputs properly escaped and a high percentage (70%) of SQL queries utilizing prepared statements. The absence of dangerous functions, file operations, and external HTTP requests further bolsters its security.  Crucially, the plugin has no recorded vulnerabilities (CVEs) of any severity, and the static analysis found no taint flows indicating potential injection issues.  The presence of nonce and capability checks on the majority of entry points also suggests a proactive approach to access control. The plugin's vulnerability history, being completely clear, indicates a consistently secure development and maintenance process over time.  While the attack surface includes AJAX handlers, all of them appear to have authentication checks, mitigating a significant risk.  Overall, this plugin presents as a very secure option, with no immediate critical or high-risk security concerns identified. Its strengths lie in its robust coding practices and clean security record.",[],"2026-03-17T07:20:21.973Z",{"wat":382,"direct":395},{"assetPaths":383,"generatorPatterns":390,"scriptPaths":391,"versionParams":392},[384,385,386,387,388,389],"\u002Fwp-content\u002Fplugins\u002Fcourt-booking-system\u002Fassets\u002Fcss\u002Fbootstrap.min.css","\u002Fwp-content\u002Fplugins\u002Fcourt-booking-system\u002Fassets\u002Fcss\u002Fflatpickr.min.css","\u002Fwp-content\u002Fplugins\u002Fcourt-booking-system\u002Fassets\u002Fcss\u002Fstyle.css","\u002Fwp-content\u002Fplugins\u002Fcourt-booking-system\u002Fassets\u002Fjs\u002Fbootstrap.bundle.min.js","\u002Fwp-content\u002Fplugins\u002Fcourt-booking-system\u002Fassets\u002Fjs\u002Fflatpickr.js","\u002Fwp-content\u002Fplugins\u002Fcourt-booking-system\u002Fassets\u002Fjs\u002Fmain.js",[],[389],[393,394],"court-booking-system\u002Fassets\u002Fcss\u002Fstyle.css?ver=","court-booking-system\u002Fassets\u002Fjs\u002Fmain.js?ver=",{"cssClasses":396,"htmlComments":401,"htmlAttributes":407,"restEndpoints":411,"jsGlobals":414,"shortcodeOutput":416},[397,398,399,400],"pcb-booking-form","pcb-calendar","pcb-instructor-list","pcb-booking-details",[402,403,404,405,406],"\u003C!-- Padel Court Booking Plugin -->","\u003C!-- Begin Booking Form -->","\u003C!-- End Booking Form -->","\u003C!-- Begin Calendar View -->","\u003C!-- End Calendar View -->",[408,409,410],"data-court-id","data-booking-date","data-booking-type",[412,413],"\u002Fwp-json\u002Fpcb\u002Fv1\u002Fbookings","\u002Fwp-json\u002Fpcb\u002Fv1\u002Finstructors",[415],"pcb_ajax_object",[417,418,419],"[court_booking_form]","[court_calendar]","[instructor_list]"]