[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$frwtb_c4Bt8AGnmhobe0aOqvaluHTDqdYjd5xOD_NfhU":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":27,"vuln_count":28,"unpatched_count":29,"last_vuln_date":30,"fetched_at":31,"vulnerabilities":32,"developer":94,"crawl_stats":38,"alternatives":99,"analysis":192,"fingerprints":294},"easyappointments","Easy!Appointments","1.4.3","alextselegidis","https:\u002F\u002Fprofiles.wordpress.org\u002Falextselegidis\u002F","\u003Cp>Leverage your conversion rates by integrating the booking form directly in your WordPress pages. Customers will never have to leave your website for booking an appointment. Take advantage of the scheduling power of Easy!Appointment which will run smoothly with your WordPress installation. Include the booking form in your pages with the [easyappointments] shortcode.\u003C\u002Fp>\n\u003Cp>\u003Cem>Minimum Requirements: WordPress v5.0 & PHP v5.6\u003C\u002Fem>\u003C\u002Fp>\n\u003Ch4>Connecting Easy!Appointments with WordPress\u003C\u002Fh4>\n\u003Cp>Install and activate the plugin and navigate to \u003Ccode>Easy!Appointments\u003C\u002Fcode> menu of the WordPress admin section. Connect to an existing Easy!Appointments installation by providing the preferred URL in the page form. Once a connection is established you’ll be able to include the booking form in your pages.\u003C\u002Fp>\n\u003Ch4>Include Booking in your Pages\u003C\u002Fh4>\n\u003Cp>WordPress supports the use of custom shortcodes which allows plugins to insert custom content into pages. This plugin takes advantage of this functionality and creates an iframe that displays the booking form of Easy!Appointments. Include the \u003Ccode>[easyappointments]\u003C\u002Fcode> shortcode in the correct place of your published contents as shown in the following example.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[easyappointments width=\"100%\" height=\"500px\" style=\"border: 5px solid #1A865F; box-shadow: #454545 1px 1px 5px;\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The “width”, “height” and “style” attributes are optional but can help you to fine tune the styling of the iframe.\u003C\u002Fp>\n\u003Cp>Additionally, you can use the “provider” and “service” shortcode attributes to preselect a provider or a service or both on a certain page (e.g. \u003Ccode>[easyappointments provider=\"2\" service=\"1\"]\u003C\u002Fcode>, where “2” and “1” are the record IDs, they can be fetched from the Easy!Appointments backend section, in the users and services page accordingly by clicking the dedicated link of a record).\u003C\u002Fp>\n\u003Cp>\u003Cem>Find out more about Easy!Appointments at https:\u002F\u002Feasyappointments.org\u002Fwordpress\u003C\u002Fem>\u003C\u002Fp>\n","Integrate the booking form of Easy!Appointments directly into your WordPress pages.",600,40773,88,5,"2025-07-28T13:46:00.000Z","6.8.5","5.0","",[20,21,22,23,24],"agenda","appointments","google-calendar","online-appointments","scheduler","https:\u002F\u002Feasyappointments.org","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feasyappointments.zip",96,4,0,"2025-04-01 00:00:00","2026-03-15T15:16:48.613Z",[33,48,63,79],{"id":34,"url_slug":35,"title":36,"description":37,"plugin_slug":4,"theme_slug":38,"affected_versions":39,"patched_in_version":6,"severity":40,"cvss_score":41,"cvss_vector":42,"vuln_type":43,"published_date":30,"updated_date":44,"references":45,"days_to_patch":47},"CVE-2025-31828","easyappointments-cross-site-request-forgery-to-settings-update","Easy!Appointments \u003C= 1.4.2 - Cross-Site Request Forgery to Settings Update","The Easy!Appointments plugin for WordPress is vulnerable to Cross-Site Request Forgery in all versions up to, and including, 1.4.2. This is due to missing or incorrect nonce validation on a function. This makes it possible for unauthenticated attackers to update the plugin's settings granted they can trick a site administrator into performing an action such as clicking on a link.",null,"\u003C=1.4.2","medium",4.3,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:N\u002FUI:R\u002FS:U\u002FC:N\u002FI:L\u002FA:N","Cross-Site Request Forgery (CSRF)","2026-02-26 15:05:14",[46],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002F92424e24-17db-45dc-804b-32a411f0b233?source=api-prod",332,{"id":49,"url_slug":50,"title":51,"description":52,"plugin_slug":4,"theme_slug":38,"affected_versions":53,"patched_in_version":54,"severity":40,"cvss_score":55,"cvss_vector":56,"vuln_type":57,"published_date":58,"updated_date":59,"references":60,"days_to_patch":62},"CVE-2024-0698","easyappointments-authenticated-contributor-stored-cross-site-scripting","Easy!Appointments \u003C= 1.3.1 - Authenticated (Contributor+) Stored Cross-Site Scripting","The Easy!Appointments plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the plugin's 'easyappointments' shortcode in all versions up to, and including, 1.3.1 due to insufficient input sanitization and output escaping on user supplied attributes. This makes it possible for authenticated attackers with contributor-level and above permissions to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.","\u003C=1.3.1","1.3.2",6.4,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:L\u002FUI:N\u002FS:C\u002FC:L\u002FI:L\u002FA:N","Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')","2024-03-04 00:00:00","2024-07-29 21:36:19",[61],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002F4b002e40-712d-4c3f-b168-9132e7b77e60?source=api-prod",148,{"id":64,"url_slug":65,"title":66,"description":67,"plugin_slug":4,"theme_slug":38,"affected_versions":68,"patched_in_version":69,"severity":70,"cvss_score":71,"cvss_vector":72,"vuln_type":73,"published_date":74,"updated_date":75,"references":76,"days_to_patch":78},"CVE-2023-32295","easyappointments-authenticatedsubscriber-arbitrary-file-deletion-via-disconnect","Easy!Appointments \u003C= 1.4.0 - Authenticated(Subscriber+) Arbitrary File Deletion via 'disconnect'","The Easy!Appointments plugin for WordPress is vulnerable to unauthorized loss of data due to a missing capability check on the disconnect function in versions up to, and including, 1.4.0. This makes it possible for authenticated attackers with subscriber privileges to delete a preconfigured list of common filenames and subfolders from arbitrary directories.","\u003C=1.4.0","1.4.1","high",8.1,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:L\u002FUI:N\u002FS:U\u002FC:N\u002FI:H\u002FA:H","Missing Authorization","2023-08-10 00:00:00","2024-07-11 17:11:06",[77],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002F35fc9a16-3775-48c0-82af-692974f54c33?source=api-prod",337,{"id":80,"url_slug":81,"title":82,"description":83,"plugin_slug":4,"theme_slug":38,"affected_versions":84,"patched_in_version":85,"severity":40,"cvss_score":86,"cvss_vector":87,"vuln_type":88,"published_date":89,"updated_date":90,"references":91,"days_to_patch":93},"CVE-2019-14936","easyappointments-information-disclosure","Easy!Appointments \u003C= 1.3.2 - Information Disclosure","The Easy!Appointments plugin for WordPress is vulnerable to Sensitive Data Exposure in versions up to, and including, 1.3.2. This can allow unauthenticated attackers to extract sensitive data such as the Username and Password hash.","\u003C=1.3.2","1.4.0",5.3,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:N\u002FUI:N\u002FS:U\u002FC:L\u002FI:N\u002FA:N","Exposure of Sensitive Information to an Unauthorized Actor","2019-09-11 00:00:00","2024-01-22 19:56:02",[92],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002F87c99299-d23b-4cab-b2dc-abeed89155ff?source=api-prod",1595,{"slug":7,"display_name":7,"profile_url":8,"plugin_count":95,"total_installs":11,"avg_security_score":27,"avg_patch_time_days":96,"trust_score":97,"computed_at":98},1,603,76,"2026-04-04T15:18:40.093Z",[100,122,141,159,179],{"slug":101,"name":102,"version":103,"author":104,"author_profile":105,"description":106,"short_description":107,"active_installs":108,"downloaded":109,"rating":108,"num_ratings":110,"last_updated":111,"tested_up_to":112,"requires_at_least":113,"requires_php":18,"tags":114,"homepage":118,"download_link":119,"security_score":120,"vuln_count":110,"unpatched_count":29,"last_vuln_date":121,"fetched_at":31},"appointmind","Appointmind","4.1.0","gentlesource","https:\u002F\u002Fprofiles.wordpress.org\u002Fgentlesource\u002F","\u003Cp>Include your Appointmind online appointment scheduling calender in any article or in the sidebar. This plugin requires that you have purchased either a monthly subscription or the downloadable version of the software. This plugin does not include the appointmind scheduling software. You can get the subscription or the software at \u003Ca href=\"https:\u002F\u002Fwww.appointmind.com\u002F?tracking=wordpress\" rel=\"nofollow ugc\">Appointmind.com (English)\u003C\u002Fa> or at \u003Ca href=\"https:\u002F\u002Fwww.appointmind.de\u002F?tracking=wordpress\" rel=\"nofollow ugc\">Appointmind.de (Deutsch)\u003C\u002Fa>.\u003C\u002Fp>\n","Include your Appointmind or Schedule Organizer online appointment scheduling calender in any article or in the sidebar.",100,10937,2,"2025-12-08T18:26:00.000Z","6.9.4","2.5",[115,116,117,21,101],"appointment","appointment-scheduler","appointment-scheduling","http:\u002F\u002Fwww.appointmind.com\u002Fwordpress-plugin\u002F?tracking=wordpress","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fappointmind.zip",98,"2025-09-16 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":29,"num_ratings":29,"last_updated":18,"tested_up_to":16,"requires_at_least":132,"requires_php":133,"tags":134,"homepage":136,"download_link":137,"security_score":27,"vuln_count":138,"unpatched_count":29,"last_vuln_date":139,"fetched_at":140},"bizcalendar-web","BizCalendar Web","1.1.0.62","setriosoft","https:\u002F\u002Fprofiles.wordpress.org\u002Fsetriosoft\u002F","\u003Ch4>Romana\u003C\u002Fh4>\n\u003Cp>Acest modul permite afisarea in orice site WordPress a unui formular prin care se pot face programari online pentru o clinica medicala care foloseste aplicatia BizMedica (http:\u002F\u002Fwww.setrio.ro\u002Fbizmedica\u002F).\u003C\u002Fp>\n\u003Cp>Pentru ca modulul sa functioneze corect, acesta transfera toate datele introduse in formular catre un serviciu web extern inclus in aplicatia BizMedica, care este gazduit pe serverul clinicii medicale. De asemenea, el preia date despre medici, specialitati medicale, intervale orare disponibile, etc. din acest serviciu. Toata comunicatia intre serverul WordPress si serviciul extern BizMedica se face criptat, prin protocolul HTTPS.\u003C\u002Fp>\n\u003Ch4>English\u003C\u002Fh4>\n\u003Cp>This plugin allows you to display a form on any WordPress site which allows you to make online appointments for any medical clinic using BizMedica software solutions (http:\u002F\u002Fwww.setrio.ro\u002Fbizmedica\u002F).\u003C\u002Fp>\n\u003Cp>In order for the correct function of the plugin, it transfers all the data entered into the form to an external web service included in the BizMedica application, which is hosted on the medical clinic server. It also downloads data about physicians, medical specialties, available time slots, etc. from this external service. All communication between the WordPress server and the BizMedica external service is encrypted through the HTTPS protocol.\u003C\u002Fp>\n","Modul de programări online pentru clinicile medicale care folosesc BizMedica \u002F Online appointments form for medical clinics using BizMedica software",20,6868,"3.3","5.3.0",[135],"setrio-bizmedica-bizcalendar-online-appointments-programari","http:\u002F\u002Fwordpress.org\u002Fplugins\u002Fsetrio-bizcalendar\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbizcalendar-web.1.1.0.62.zip",3,"2025-08-14 20:14:14","2026-03-15T10:48:56.248Z",{"slug":142,"name":143,"version":144,"author":145,"author_profile":146,"description":147,"short_description":148,"active_installs":149,"downloaded":150,"rating":29,"num_ratings":29,"last_updated":151,"tested_up_to":16,"requires_at_least":152,"requires_php":153,"tags":154,"homepage":18,"download_link":158,"security_score":108,"vuln_count":29,"unpatched_count":29,"last_vuln_date":38,"fetched_at":31},"psybooker-calendar-for-appointments","PsyBooker – Calendar for Appointments","1.5.1","dkoreiba","https:\u002F\u002Fprofiles.wordpress.org\u002Fdkoreiba\u002F","\u003Cp>\u003Cstrong>PsyBooker\u003C\u002Fstrong> is the ultimate scheduling solution for therapists and psychologists who want to automate client scheduling.\u003Cbr \u002F>\nIt combines a simple booking interface, admin slot management, notifications, and full Google Calendar integration — right inside WordPress.\u003C\u002Fp>\n\u003Ch3>Main Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Easy Booking Form\u003C\u002Fstrong> – clean and simple booking interface for clients  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Two-Way Google Calendar Sync\u003C\u002Fstrong> – appointments are automatically created and updated in Google Calendar  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Flexible Slot Management\u003C\u002Fstrong> – weekly and daily availability setup, including exceptions  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Email Notifications\u003C\u002Fstrong> – automatic confirmations and admin alerts  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Timezone Support\u003C\u002Fstrong> – automatic conversion for international clients  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Conflict Prevention\u003C\u002Fstrong> – prevents overlapping or duplicate bookings  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Modern REST API\u003C\u002Fstrong> – integrate with custom apps or frontends  \u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Additional Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>👥 Perfect for private practice management\u003C\u002Fli>\n\u003Cli>📅 Never miss appointments with automatic Google Calendar sync\u003C\u002Fli>\n\u003Cli>💼 Professional booking experience for your clients\u003C\u002Fli>\n\u003Cli>⚙️ Availability planning with weekly and daily override modes\u003C\u002Fli>\n\u003Cli>🧭 Automatic timezone detection from browser\u003C\u002Fli>\n\u003Cli>🔔 Customizable reminders (email and popup)\u003C\u002Fli>\n\u003Cli>🧩 Adjacent slot blocking to prevent back-to-back sessions\u003C\u002Fli>\n\u003Cli>🧠 Minimum lead time before booking (e.g., only next-day sessions)\u003C\u002Fli>\n\u003Cli>🔐 Data encryption with external master key support\u003C\u002Fli>\n\u003Cli>🛡️ Rate limiting and anti-spam protection\u003C\u002Fli>\n\u003Cli>🧾 GDPR-friendly: export and erase user data via WP privacy tools\u003C\u002Fli>\n\u003Cli>🧱 Shortcode support for embedding the booking calendar on any page\u003C\u002Fli>\n\u003Cli>⚡ Works perfectly with caching and SEO plugins\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>External Services\u003C\u002Fh3>\n\u003Cp>This plugin connects to Google Calendar API to synchronize appointments and manage calendar events.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Google Calendar API\u003C\u002Fstrong>\u003Cbr \u002F>\n– Service: Google Calendar API (https:\u002F\u002Fwww.googleapis.com\u002Fcalendar\u002Fv3)\u003Cbr \u002F>\n– Purpose: To create, read, update, and delete calendar events and appointments\u003Cbr \u002F>\n– Data sent: Calendar event details (title, description, date, time, attendees, Google Meet conference links), OAuth authentication tokens\u003Cbr \u002F>\n– When: When user connects their Google Calendar, creates\u002Fedits\u002Fdeletes appointments, or syncs calendar data\u003Cbr \u002F>\n– Privacy Policy: https:\u002F\u002Fpolicies.google.com\u002Fprivacy\u003Cbr \u002F>\n– Terms of Service: https:\u002F\u002Fpolicies.google.com\u002Fterms\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Google OAuth 2.0\u003C\u002Fstrong>\u003Cbr \u002F>\n– Service: Google OAuth 2.0 (https:\u002F\u002Foauth2.googleapis.com\u002Ftoken, https:\u002F\u002Faccounts.google.com\u002Fo\u002Foauth2\u002Fauth)\u003Cbr \u002F>\n– Purpose: To authenticate users and obtain access tokens for Google Calendar API\u003Cbr \u002F>\n– Data sent: OAuth authorization codes, client credentials, refresh tokens\u003Cbr \u002F>\n– When: During initial Google Calendar connection and token refresh\u003Cbr \u002F>\n– Privacy Policy: https:\u002F\u002Fpolicies.google.com\u002Fprivacy\u003Cbr \u002F>\n– Terms of Service: https:\u002F\u002Fpolicies.google.com\u002Fterms\u003C\u002Fp>\n\u003Cp>Note: Google Calendar integration is optional and requires explicit user authorization. No data is sent to Google services unless the user chooses to connect their Google Calendar.\u003C\u002Fp>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is licensed under the GPLv2 or later.\u003C\u002Fp>\n","Professional appointment booking system designed specifically for therapists and psychologists.",10,174,"2025-11-30T17:17:00.000Z","6.2","7.4",[21,155,156,22,157],"booking","calendar","psychology","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpsybooker-calendar-for-appointments.1.5.1.zip",{"slug":160,"name":161,"version":162,"author":163,"author_profile":164,"description":165,"short_description":166,"active_installs":29,"downloaded":167,"rating":108,"num_ratings":110,"last_updated":168,"tested_up_to":169,"requires_at_least":170,"requires_php":171,"tags":172,"homepage":18,"download_link":177,"security_score":178,"vuln_count":29,"unpatched_count":29,"last_vuln_date":38,"fetched_at":31},"booking-system-bok-to","Booking System – bok.to","1.0.1","getreveltd","https:\u002F\u002Fprofiles.wordpress.org\u002Fgetreveltd\u002F","\u003Cp>This plugin is all you need to turn your website into an online business. It is very easy to set up and there’s no coding required. Just follow the simple wizard, fill in the details in configuration tab and integrate a booking button or widget from Bok to your website!\u003C\u002Fp>\n\u003Cp>After these simple steps, you will be ready to accept first bookings.\u003C\u002Fp>\n\u003Ch3>Booking button or widget\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Intuitive interface\u003C\u002Fli>\n\u003Cli>You can change the view mode whenever you want\u003C\u002Fli>\n\u003Cli>The booking button is automatically added to your website’s navigation panel\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Services\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>You can view information about your services\u003C\u002Fli>\n\u003Cli>You have possibility to change services sale statuses\u003C\u002Fli>\n\u003Cli>You can add new ones if you want\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Bookings\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>You can view information about your existing bookings\u003C\u002Fli>\n\u003Cli>See booking details\u003C\u002Fli>\n\u003Cli>Change booking statuses\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Booking calendar\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>See all upcoming appointments on a nice calendar\u003C\u002Fli>\n\u003Cli>Access booking details directly form the calendar\u003C\u002Fli>\n\u003Cli>See how many appointments you have\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>See how our online booking system works:\u003C\u002Fh4>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002Fk9kMZKbfHQw?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\n\u003Ch3>Further Reading\u003C\u002Fh3>\n\u003Cp>For more info, check out the following links:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Check our \u003Ca href=\"https:\u002F\u002Fbok.to\u002F\" rel=\"nofollow ugc\">booking system website\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Our \u003Ca href=\"https:\u002F\u002Fbok.to\u002Fblog\" rel=\"nofollow ugc\">blog about marketing and sales\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>How to install and activate the plugin\u003C\u002Fh3>\n\u003Cp>Please see our \u003Ca href=\"https:\u002F\u002Fbok.to\u002Fwordpress\" rel=\"nofollow ugc\">step by step instructions guide\u003C\u002Fa> on how to install and use this plugin.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>From within WordPress\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>Go to Plugins > Add New\u003C\u002Fli>\n\u003Cli>Search Bokto\u003C\u002Fli>\n\u003Cli>Activate the plugin from the Plugins page\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Manually\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>Upload the booking-system folder to the \u002Fwp-content\u002Fplugins\u002F directory\u003C\u002Fli>\n\u003Cli>Activate the plugin from your Plugins page\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>How to set up your booking machine\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Look for bok.to in your WordPress menu\u003C\u002Fli>\n\u003Cli>Go to configuration tab and follow the link on the banner to create bok.to account (if you do not have one already)\u003C\u002Fli>\n\u003Cli>Configure your products and website inside bok.to\u003C\u002Fli>\n\u003Cli>Paste your API key and website link into configuration tab\u003C\u002Fli>\n\u003Cli>Choose view mode: widget or booking button\u003C\u002Fli>\n\u003C\u002Fol>\n","Add booking button or booking widget to your website, manage your product list and start receiving bookings from your clients.",991,"2021-02-25T14:53:00.000Z","5.6.17","5.6.1","7.1",[173,174,175,23,176],"booking-page-generator","bookings","bookings-page","scheduling-website","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbooking-system-bok-to.1.0.1.zip",85,{"slug":180,"name":181,"version":69,"author":182,"author_profile":183,"description":184,"short_description":185,"active_installs":29,"downloaded":186,"rating":29,"num_ratings":29,"last_updated":18,"tested_up_to":112,"requires_at_least":187,"requires_php":153,"tags":188,"homepage":190,"download_link":191,"security_score":108,"vuln_count":29,"unpatched_count":29,"last_vuln_date":38,"fetched_at":140},"codobookings","CodoBookings","Junaid Hassan","https:\u002F\u002Fprofiles.wordpress.org\u002Fjunaidte14\u002F","\u003Cp>CodoBookings is a modern, lightweight booking and appointment-management plugin for WordPress. It’s designed to make scheduling, managing, and tracking appointments effortless.\u003C\u002Fp>\n\u003Cp>Whether you’re a coach, consultant, tutor, or agency, CodoBookings helps you manage your entire booking process directly inside WordPress — cleanly, securely, and efficiently.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>🎯 Key Features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Flexible Booking Types\u003C\u002Fstrong> – Supports both one-time and weekly recurring appointments.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Guest Bookings\u003C\u002Fstrong> – Customers can book appointments without creating an account by just providing their email address.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Email Notifications\u003C\u002Fstrong> – Automatic HTML email confirmations and status update notifications for you and your clients.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Shortcodes for Easy Embedding\u003C\u002Fstrong> – Display booking calendars or grids anywhere using simple shortcodes.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Design System\u003C\u002Fstrong> – A powerful design system to customize colors, layout and custom CSS.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>User Fields\u003C\u002Fstrong> – A drag & drop enabled dynamic User Fields system to collect custom user data associated to a booking.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Admin Dashboard Widget\u003C\u002Fstrong> – See your key booking stats right on the WordPress dashboard.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Clean Front-End Interface\u003C\u002Fstrong> – Modern, minimal design that adapts to any WordPress theme.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Translation Ready\u003C\u002Fstrong> – Includes \u003Ccode>.pot\u003C\u002Fcode> file for localization with tools like Poedit.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Extensible Architecture\u003C\u002Fstrong> – Modular structure ready for integrations and add-ons.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Secure & Optimized\u003C\u002Fstrong> – Sanitized inputs, escaped outputs, and lightweight queries.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>CodoBookings provides a full, professional booking system built natively for WordPress — without bloat or dependency chains.\u003C\u002Fp>\n\u003Ch3>Developer Hooks & Filters\u003C\u002Fh3>\n\u003Cp>CodoBookings provides 40+ action hooks and filter hooks that allow developers to extend and customize the booking system without modifying core plugin files. These hooks enable you to add custom functionality, integrate with third-party services, modify the booking workflow, customize design settings, and enhance the user experience.\u003C\u002Fp>\n\u003Cp>Common use cases include:\u003Cbr \u002F>\n* Adding custom validation to booking forms\u003Cbr \u002F>\n* Integrating with CRM systems and marketing tools\u003Cbr \u002F>\n* Customizing email notifications and workflows\u003Cbr \u002F>\n* Modifying calendar display and grid layouts\u003Cbr \u002F>\n* Extending design customization options\u003Cbr \u002F>\n* Implementing custom analytics tracking\u003Cbr \u002F>\n* Adding promotional content and badges\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Developer Reference Guide:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fwpdemo.codoplex.com\u002Fcodobookings\u002Fcodobookings-hooks-and-filters-complete-developer-guide-2026\u002F\" rel=\"nofollow ugc\">CodoBookings Hooks and Filters – Complete Developer Guide\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>The reference guide includes detailed explanations and working code examples for every hook, organized by functionality: dashboard hooks, calendar display hooks, booking process hooks, design customization hooks, styling hooks, and JavaScript hooks.\u003C\u002Fp>\n\u003Ch3>Planned Extensions\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>PMPro Integration\u003C\u002Fstrong> – Restrict or enable bookings based on membership level. \u003Cem>(Coming soon)\u003C\u002Fem>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>WooCommerce Integration\u003C\u002Fstrong> – Sell bookings as WooCommerce products with a full checkout flow. \u003Cem>(Coming soon)\u003C\u002Fem>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Google Calendar Sync\u003C\u002Fstrong> – Sync bookings with Google Calendar. \u003Cem>(Coming soon)\u003C\u002Fem>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Custom Email Templates\u003C\u002Fstrong> – Create branded, customizable email templates. \u003Cem>(Coming soon)\u003C\u002Fem>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is licensed under the GPLv2 or later license.\u003Cbr \u002F>\nYou are free to use, modify, and redistribute it under the same license.\u003C\u002Fp>\n\u003Ch3>Author & Links\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Author:\u003C\u002Fstrong> CodoBookings Team – \u003Ca href=\"https:\u002F\u002Fcodoplex.com\" rel=\"nofollow ugc\">Codoplex\u003C\u002Fa>\u003Cbr \u002F>\n\u003Cstrong>Demo:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fwpdemo.codoplex.com\u002Fcodobookings\u002Fdemo\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Fwpdemo.codoplex.com\u002Fcodobookings\u002Fdemo\u002F\u003C\u002Fa>\u003Cbr \u002F>\n\u003Cstrong>Support:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fcare.codoplex.com\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Fcare.codoplex.com\u002F\u003C\u002Fa>\u003C\u002Fp>\n","A Lightweight WordPress Booking & Appointment System",282,"6.0",[21,155,156,24,189],"wordpress-booking","https:\u002F\u002Fwpdemo.codoplex.com\u002Fcodobookings\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcodobookings.1.4.1.zip",{"attackSurface":193,"codeSignals":235,"taintFlows":249,"riskAssessment":278,"analyzedAt":293},{"hooks":194,"ajaxHandlers":217,"restRoutes":228,"shortcodes":229,"cronEvents":234,"entryPointCount":28,"unprotectedCount":138},[195,201,204,207,209,212,214],{"type":196,"name":197,"callback":198,"file":199,"line":200},"action","plugins_loaded","anonymous","includes\\class-easyappointments.php",142,{"type":196,"name":202,"callback":198,"file":199,"line":203},"admin_menu",157,{"type":196,"name":205,"callback":198,"file":199,"line":206},"admin_enqueue_scripts",158,{"type":196,"name":205,"callback":198,"file":199,"line":208},159,{"type":196,"name":210,"callback":198,"file":199,"line":211},"wp_enqueue_scripts",177,{"type":196,"name":210,"callback":198,"file":199,"line":213},178,{"type":196,"name":215,"callback":198,"file":199,"line":216},"init",179,[218,222,225],{"action":219,"nopriv":220,"callback":198,"hasNonce":220,"hasCapCheck":220,"file":199,"line":221},"easyappointments_connect",false,160,{"action":223,"nopriv":220,"callback":198,"hasNonce":220,"hasCapCheck":220,"file":199,"line":224},"easyappointments_disconnect",161,{"action":226,"nopriv":220,"callback":198,"hasNonce":220,"hasCapCheck":220,"file":199,"line":227},"easyappointments_verify_state",162,[],[230],{"tag":4,"callback":231,"file":232,"line":233},"closure","public\\class-easyappointments-public.php",110,[],{"dangerousFunctions":236,"sqlUsage":237,"outputEscaping":239,"fileOperations":29,"externalRequests":29,"nonceChecks":138,"capabilityChecks":95,"bundledLibraries":248},[],{"prepared":29,"raw":29,"locations":238},[],{"escaped":240,"rawEcho":110,"locations":241},7,[242,246],{"file":243,"line":244,"context":245},"admin\\partials\\easyappointments-admin-display.php",22,"raw output",{"file":243,"line":247,"context":245},25,[],[250,270],{"entryPoint":251,"graph":252,"unsanitizedCount":29,"severity":269},"connect (admin\\class-easyappointments-admin.php:100)",{"nodes":253,"edges":266},[254,260],{"id":255,"type":256,"label":257,"file":258,"line":259},"n0","source","$_POST","admin\\class-easyappointments-admin.php",105,{"id":261,"type":262,"label":263,"file":258,"line":264,"wp_function":265},"n1","sink","update_option() [Settings Manipulation]",115,"update_option",[267],{"from":255,"to":261,"sanitized":268},true,"low",{"entryPoint":271,"graph":272,"unsanitizedCount":29,"severity":269},"\u003Cclass-easyappointments-admin> (admin\\class-easyappointments-admin.php:0)",{"nodes":273,"edges":276},[274,275],{"id":255,"type":256,"label":257,"file":258,"line":259},{"id":261,"type":262,"label":263,"file":258,"line":264,"wp_function":265},[277],{"from":255,"to":261,"sanitized":268},{"summary":279,"deductions":280},"The static analysis of EasyAppointments v1.4.3 reveals a mixed security posture. While the plugin demonstrates good practices by not utilizing dangerous functions, performing all SQL queries using prepared statements, and avoiding file operations and external HTTP requests, there are significant areas of concern. The presence of three AJAX handlers without authentication checks creates a substantial attack surface, making it susceptible to unauthorized actions. Additionally, while nonce checks are present for these handlers, their absence of capability checks is a critical oversight.\n\nThe vulnerability history of this plugin is worrying. With four previously identified CVEs, including one high and three medium severity vulnerabilities, a pattern of security weaknesses emerges. Common vulnerability types such as CSRF, XSS, missing authorization, and information exposure suggest recurring issues with input validation and access control. Although there are currently no unpatched CVEs for this specific version, the historical trend indicates a higher likelihood of future vulnerabilities if development practices do not improve.\n\nIn conclusion, EasyAppointments v1.4.3 exhibits strengths in its secure handling of SQL and its avoidance of common risky functionalities. However, the unprotected AJAX endpoints represent a significant and immediate risk. The plugin's past vulnerability record further amplifies concerns, suggesting a need for rigorous security audits and improved development discipline. Users should exercise caution and ensure this plugin is updated as soon as any new security patches become available.",[281,284,286,288,291],{"reason":282,"points":283},"Unprotected AJAX handlers",15,{"reason":285,"points":149},"Missing capability checks on AJAX",{"reason":287,"points":149},"High\u002FMedium severity CVE history",{"reason":289,"points":290},"Common vulnerability types in history",8,{"reason":292,"points":28},"Some unescaped output","2026-03-16T19:26:50.690Z",{"wat":295,"direct":308},{"assetPaths":296,"generatorPatterns":301,"scriptPaths":302,"versionParams":303},[297,298,299,300],"\u002Fwp-content\u002Fplugins\u002Feasyappointments\u002Fcss\u002Feasyappointments-public.css","\u002Fwp-content\u002Fplugins\u002Feasyappointments\u002Fcss\u002Feasyappointments-admin.css","\u002Fwp-content\u002Fplugins\u002Feasyappointments\u002Fjs\u002Ffrontend.js","\u002Fwp-content\u002Fplugins\u002Feasyappointments\u002Fjs\u002Fbackend.js",[],[299,300],[304,305,306,307],"easyappointments\u002Fcss\u002Feasyappointments-public.css?ver=","easyappointments\u002Fcss\u002Feasyappointments-admin.css?ver=","easyappointments\u002Fjs\u002Ffrontend.js?ver=","easyappointments\u002Fjs\u002Fbackend.js?ver=",{"cssClasses":309,"htmlComments":313,"htmlAttributes":315,"restEndpoints":318,"jsGlobals":319,"shortcodeOutput":321},[310,311,312],"easyappointments-booking-form","ea-appointments-booking-form","ea-appointments-admin-wrap",[314],"\u003C!-- Easy!Appointments integration -->",[316,317],"data-ea-url","data-ea-service-id",[],[320],"easyappointments_params",[322],"[easyappointments]"]