[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f5DfaObFtwOtFOQZxdgExryvUyNqWp7Qwo-lUHxkhhXc":3},{"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":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":24,"download_link":25,"security_score":26,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29,"vulnerabilities":30,"developer":31,"crawl_stats":28,"alternatives":37,"analysis":143,"fingerprints":428},"mb-spirit-for-mindbody","MB Spirit for MINDBODY","1.1.0","yogaboy","https:\u002F\u002Fprofiles.wordpress.org\u002Fyogaboy\u002F","\u003Cp>MB Spirit allows you to easily integrate your MINDBODY information into your web site. Using the MB Spirit Dashboard, you\u003Cbr \u002F>\ncan create any number of custom widgets to display MINDBODY elements including:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Class Schedules\u003C\u002Fli>\n\u003Cli>Events, Workshops and Retreats\u003C\u002Fli>\n\u003Cli>Events, Workshops and Retreats – Calendar View\u003C\u002Fli>\n\u003Cli>Staff\u002FInstructor Details\u003C\u002Fli>\n\u003Cli>Class Descriptions\u003C\u002Fli>\n\u003Cli>Session Types\u003C\u002Fli>\n\u003Cli>Products and Service\u003C\u002Fli>\n\u003Cli>Appointments\u003C\u002Fli>\n\u003Cli>Appointments (Advanced)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You use the MB Spirit WordPress plugin to select your MB Spirit widgets and insert them into pages and posts.\u003C\u002Fp>\n\u003Cp>You can also customize your MB Spirit shortcodes to apply data filters, and adjust the layout for individual pages.\u003C\u002Fp>\n\u003Cp>Enable MB Spirit SEO Optimization and allow search engines to index your MINDBODY content, increasing organic traffic to your site.\u003Cbr \u002F>\nOur powerful caching technology ensures your MINDBODY content will load just as fast as the rest of your web content. Eliminating\u003Cbr \u002F>\nslow page loads enhances your SEO activities (Google loves fast loading content).\u003C\u002Fp>\n\u003Cp>Along with your MB Spirit account, this plugin allows you to quickly and flexibly integrate and enhance the\u003Cbr \u002F>\ncontent from your MINDBODY account. Our layouts look awesome out of the box, but if you are a designer, you can apply your own styling to\u003Cbr \u002F>\nMB Spirit widgets.\u003C\u002Fp>\n\u003Cp>Easy to get started, powerful features.\u003C\u002Fp>\n\u003Cp>Features:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Test mode allows you to try MB Spirit integration without impacting your web site’s content\u003C\u002Fli>\n\u003Cli>Works with all WordPress themes\u003C\u002Fli>\n\u003Cli>Quick setup — specify your schedule, event list, staff list, and class description pages and identify a pre-set widget to use for each.\u003C\u002Fli>\n\u003Cli>Create your MINDBODY widgets using the MB Spirit dashboard widget builder and easily add shortcodes to your WordPress pages and posts\u003Cbr \u002F>\n(you can even override your widgets with new parameters within WordPress)\u003C\u002Fli>\n\u003Cli>Inject shortcodes into any page of your web site and add filters to give finer control of contents\u003C\u002Fli>\n\u003Cli>Schedule widgets let you do custom and dynamic filtering of classes\u003C\u002Fli>\n\u003Cli>Add MB Spirit widgets into your site through the WordPress widgets dashboard under the appearance settings\u003C\u002Fli>\n\u003Cli>WPML ready content lets you present your information in as many languages as you like\u003C\u002Fli>\n\u003Cli>MB Spirit allows you to extend your MINDBODY content to add more images and details, with slicker layouts than are capable with MINDBODY\u003C\u002Fli>\n\u003Cli>Refresh your content from inside WordPress\u003C\u002Fli>\n\u003Cli>Connect to MB Spirit for registration by allowing users to sign in to their MINDBODY studio client account\u003C\u002Fli>\n\u003Cli>Dashboard widget shows you information and tips for getting the most out of your MB Spirit service\u003C\u002Fli>\n\u003C\u002Ful>\n","Connect your MB Spirit account with WordPress for easy integration of your MINDBODY account information and enhance SEO support.",100,7162,3,"2023-10-18T19:03:00.000Z","6.3.8","6.0.0","",[19,20,21,22,23],"api","classes","mindbody","schedule","staff","https:\u002F\u002Fmb-spirit.com\u002Fwordpress-plugin","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmb-spirit-for-mindbody.1.1.0.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":32,"total_installs":33,"avg_security_score":26,"avg_patch_time_days":34,"trust_score":35,"computed_at":36},2,110,30,84,"2026-04-04T14:56:56.610Z",[38,65,88,106,123],{"slug":39,"name":40,"version":41,"author":42,"author_profile":43,"description":44,"short_description":45,"active_installs":46,"downloaded":47,"rating":48,"num_ratings":49,"last_updated":50,"tested_up_to":51,"requires_at_least":52,"requires_php":53,"tags":54,"homepage":60,"download_link":61,"security_score":62,"vuln_count":63,"unpatched_count":27,"last_vuln_date":64,"fetched_at":29},"wpschoolpress","School Management System – WPSchoolPress","2.2.35","Ronik@UnlimitedWP","https:\u002F\u002Fprofiles.wordpress.org\u002Fjdsofttech\u002F","\u003Cp>WPSchoolPress is currently a highly demanding WordPress plugin for the school management system in 2025-26. WPSchoolPress is a No.#1 School Management WordPress Plugin allows you to manage entities such as classes, students, sections, exams, timetables, results, ID Cards, teachers, staff, fee management, parent control, invoices, noticeboards, and more.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\n\u003Cp>Role based access:Users like school admin, students, parents and teachers can easily login and access their respective user-friendly dashboards.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Student Attendance Management System:Admin and Teachers can do entire attendance management on daily basis of the students of each class. Students and parents can see date wise attendance report. Teacher can also add the reason for absence of each student. Whenever any student is absent, an automatic message is sent to the registered parent mentioning the day, date and reason of being absent. Automatic messages are sent only if the school has purchased our SMS add-on.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Class rooms and subjects:As a student managing plugin,WPSchoolPress has made simple for admin to create new classes and assign subjects. Eventually, teacher’s management can be done by assigning subjects and classes. For parents, their child information like class number, respective subjects and assigned teachers can be viewed when they login to their respective dashboards.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Student Grade Management System:As student report management system,WPSchoolPress has a feature by which admin and teachers can insert student grades\u002Fmarks on the bases of their class and subjects. Along with grades, teachers can also write remarks or student-reviews on student’s performance. Subject-wise grades will be visible on students and parent’s dashboards. Using our paid Import-Export add-on, teachers can import a .csv file with grades for quicker upload of marksin bulk. The students and parents can further print grade sheets.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>School Schedule Management System:Admin and teachers can create exam schedule for each subject of their respective class.Along with this, upcoming school event schedules like cultural festival schedule, sports tournament schedule, annual leaves management and likewise can be easily created. For sudden changes in acedemics, admin can notify teachers, students and parents by sending email-notifications(free) or sending messages through our paid SMS add-on.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>School Transportation Management System: Details regarding Public Transport bus, tram or School Private transport, routes and driver details can be provided on students, parents and teachers dashboards by admin. Also admin can send notifications in form of e-mail (free) or SMS (with use of paid add-on) to parents if there is a replacement in driver, transport bus, change in route, etc.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Constant feature updates:We are constantly trying to have feature updatesfor you to run the school operations smoothly. These updates are on the bases our customer suggestions and feature requirements. Check our website for any new updates and add-ons\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>2.2.33\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Fixed   – Fixed issue of default user roles which vanished when plugin activate\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>2.2.34\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Fixed   – teacher not able to edit students info. fixed it\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>2.2.35\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Updated – Make Class field mandatory when new student registered or existing studen updated\u003C\u002Fli>\n\u003Cli>Fixed   – make validation such that same roll no is not used in same class\u003C\u002Fli>\n\u003C\u002Ful>\n","An extensive plugin for school management with features like attendance, class management, time table, exams, grades, student-teacher-parent notificat &hellip;",2000,196650,80,21,"2026-02-17T12:09:00.000Z","6.9.4","6.7","7.4",[55,56,57,58,59],"attendance-management","exam-schedule-management","staff-information-management","student-information-management","time-table-management","http:\u002F\u002Fwpschoolpress.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwpschoolpress.2.2.35.zip",88,13,"2025-11-13 22:05:08",{"slug":66,"name":67,"version":68,"author":69,"author_profile":70,"description":71,"short_description":72,"active_installs":73,"downloaded":74,"rating":75,"num_ratings":76,"last_updated":77,"tested_up_to":78,"requires_at_least":79,"requires_php":17,"tags":80,"homepage":86,"download_link":87,"security_score":11,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"gym-studio-membership-management","Gym Studio Membership Management","1.2.0","Fitsoft","https:\u002F\u002Fprofiles.wordpress.org\u002Ffitsoft\u002F","\u003Cp>Gym Studio Membership Management creates editor buttons for embedding class calendar, schedule of classes, login area, chat, and membership checkout to a post or a page. From the “Membership Management” page you can also manage classes, instructors, members, and memberships. Now includes an optional floating widget for all pages.\u003C\u002Fp>\n\u003Cp>New Features:\u003Cbr \u002F>\n* Refresh block update when editing\u003Cbr \u002F>\n* Updated Calendar\u003C\u002Fp>\n\u003Cp>Major features in Gym Studio Membership Management include:\u003Cbr \u002F>\n* Add a monthly class calendar along with class details to the frontend.\u003Cbr \u002F>\n* Add a login area with member’s dashboard to your site for updating payment information.\u003Cbr \u002F>\n* Add a schedule of classes to your website.\u003Cbr \u002F>\n* When a member signs up a QR-barcode it is automatically generated for the member.\u003Cbr \u002F>\n* Automatically charge members by a selected timeframe and with a number of recurring payments.\u003Cbr \u002F>\n* Track payments and unpaid members. See who has paid for what and their payment history.\u003Cbr \u002F>\n* New Promocode system set promo start date, end date, number of usage and discounts by percentage, sales price or discounted value.\u003C\u002Fp>\n\u003Cp>PS: You’ll need a \u003Ca href=\"http:\u002F\u002Fnews.fitsoft.com\u002Fwordpress-plugin-setup\" rel=\"nofollow ugc\">Fitsoft Plugin password\u003C\u002Fa> for instruction to create one.  It is free to signup and use; Transaction fee applies on a business or a commercial site.\u003C\u002Fp>\n\u003Cp>Also if you find any bugs or request for us to add new features please email us at support@fitsoft.com. Please check welcome email for instruction and app download links.\u003C\u002Fp>\n","Gym Studio Membership Management adds class calendar, schedule of classes and membership checkout to your posts and pages.",90,21773,78,15,"2025-07-02T23:12:00.000Z","6.8.5","4.2.4",[81,82,83,84,85],"class-calendar","class-schedule","member","membership-management","schedule-of-classes","https:\u002F\u002Fnews.fitsoft.com\u002Fwordpress-plugin-setup","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgym-studio-membership-management.1.2.0.zip",{"slug":89,"name":90,"version":91,"author":92,"author_profile":93,"description":94,"short_description":95,"active_installs":96,"downloaded":97,"rating":11,"num_ratings":32,"last_updated":98,"tested_up_to":99,"requires_at_least":100,"requires_php":17,"tags":101,"homepage":104,"download_link":105,"security_score":26,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"easy-classes","Easy Classes","1.2","melinadonati","https:\u002F\u002Fprofiles.wordpress.org\u002Fmelinadonati\u002F","\u003Cp>Easy Classes provide custom post types for teachers and classes, with a lots of custom categories used to automatically\u003Cbr \u002F>\ngenerate a schedule with all the published classes. There can be up to 2 classes present at the same hours on the schedule.\u003Cbr \u002F>\nYou create as you wish the classes, the days, the teachers, the times etc.\u003C\u002Fp>\n\u003Ch4>ABOUT THE AUTOMATICALLY GENERATED SCHEDULE\u003C\u002Fh4>\n\u003Cp>USING IT :\u003C\u002Fp>\n\u003Cp>On the schedule page in the administration, all you have to do is choosing the colours for the different classes and save your changes.\u003Cbr \u002F>\nThen generate the schedule code, copy it, and paste it into a page or post in the “text” editor (not the visual). Save the post\u002Fpage and\u003Cbr \u002F>\ndisplay it : the schedule appears (its look can differ depending on your theme).\u003C\u002Fp>\n\u003Cp>COLOURS :\u003C\u002Fp>\n\u003Cp>Any valid HTML colour will work ! You can now enter values like #FF6857, ‘MediumOrchid’, rgb(255,0,0), they will all work.\u003Cbr \u002F>\nIf you don’t know HTML colours, no problem, 150 colours name are provided with the plugin in order for you to choose one.\u003Cbr \u002F>\nYou can write the colours names provided with or without capital at the beginning. Without capital it will only ask you to confirm, click ok. It works.\u003Cbr \u002F>\nBe careful of mistakes, any name not found in the 150 colours provided is allowed after a confirmation.\u003Cbr \u002F>\nSo if a colour doesn’t appear, enter it again properly, it may be caused by a typo.\u003C\u002Fp>\n\u003Cp>ORDERING NON ENGLISH DAYS :\u003C\u002Fp>\n\u003Cp>Only a french translation for the plugin exists by now, so, if you enter non-english or non-french days, you may notice they don’t appear in the right order in the schedule.\u003Cbr \u002F>\nYou can now order them just as you like under “Days” at the top of the schedule admin panel. Don’t use it if the days are already properly ordered.\u003C\u002Fp>\n\u003Cp>AVOIDING ERRORS \u002F NOT DISPLAYING :\u003C\u002Fp>\n\u003Cp>The schedule will only use what you have created (title,day,hours,teacher,room), but to be correctly generated, your classes need\u003Cbr \u002F>\nto have at least :\u003C\u002Fp>\n\u003Cul>\n\u003Cli>a title (doesn’t cause errors, but without the title the schedule won’t make any sense)\u003C\u002Fli>\n\u003Cli>a starting hour, smaller than the ending hour\u003C\u002Fli>\n\u003Cli>an ending hour, bigger than the starting hour\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>If the starting hour is bigger than the ending hour, the class won’t be displayed.\u003C\u002Fp>\n\u003Cp>If the starting hour is equal to the ending hour, the class will display in the box with the starting hour you’ve checked.\u003Cbr \u002F>\nFor e.g. you’ve checked “08:00” for both hours, the schedule will display the class at “08:00 \u002F next hour registered “\u003C\u002Fp>\n\u003Cp>If you’ve checked an ending hour but not a starting one, the class will be displayed all through the day until the ending hour.\u003C\u002Fp>\n\u003Cp>If you’ve checked a starting hour but no ending one, the class won’t be displayed.\u003C\u002Fp>\n\u003Cp>Neither will it be displayed if you have checked no hour at all.\u003C\u002Fp>\n\u003Cp>Thanks for using this plugin, I hope you’ll enjoy it and that it will help you managing better your site.\u003C\u002Fp>\n","This plugin has been made to easily handle classes and teachers informations on a Wordpress website.",10,4670,"2013-10-25T17:31:00.000Z","3.6.1","3.0.0",[20,22,102,103],"school","teacher","http:\u002F\u002Fwordpress.org\u002Fplugins\u002Feasy-classes\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feasy-classes.1.2.zip",{"slug":107,"name":108,"version":109,"author":110,"author_profile":111,"description":112,"short_description":113,"active_installs":27,"downloaded":114,"rating":27,"num_ratings":27,"last_updated":115,"tested_up_to":51,"requires_at_least":116,"requires_php":53,"tags":117,"homepage":121,"download_link":122,"security_score":11,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"automaize-class-schedule","Automaize Class Schedule","1.0.10","automaize","https:\u002F\u002Fprofiles.wordpress.org\u002Fautomaize\u002F","\u003Cp>Automaize Class Schedule is a complete class management and booking solution for WordPress. It is designed for gyms, yoga studios, dance schools, and any business that runs regularly scheduled classes.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Admin Features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Visual weekly schedule dashboard for creating and managing classes at a glance\u003C\u002Fli>\n\u003Cli>Create one-time or recurring classes with flexible repetition rules\u003C\u002Fli>\n\u003Cli>“Functions” dropdown with “Save Week as Template” and “Clear Entire Week” actions\u003C\u002Fli>\n\u003Cli>Schedule templates — save any week as a reusable template and apply it to future weeks\u003C\u002Fli>\n\u003Cli>Access Control — restrict individual classes to specific membership plans\u003C\u002Fli>\n\u003Cli>Automatic series management — edit a single class or all future classes in a series\u003C\u002Fli>\n\u003Cli>Member management panel with active\u002Finactive member views\u003C\u002Fli>\n\u003Cli>Credit plan management with automatic weekly credit restock via WP-Cron\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Member Features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Interactive public-facing weekly schedule with previous\u002Fnext week navigation\u003C\u002Fli>\n\u003Cli>One-click booking with credit deduction\u003C\u002Fli>\n\u003Cli>Restricted classes are clearly indicated to non-eligible members\u003C\u002Fli>\n\u003Cli>Live booking count and availability display\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Developer \u002F Integration Features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Elementor widget for drag-and-drop schedule placement\u003C\u002Fli>\n\u003Cli>\u003Ccode>[acsc_class_schedule]\u003C\u002Fcode> shortcode for any page or theme\u003C\u002Fli>\n\u003Cli>All data stored as WordPress Custom Post Types for full compatibility\u003C\u002Fli>\n\u003C\u002Ful>\n","A powerful and intuitive solution for managing and displaying class schedules with a seamless booking experience for members.",44,"2026-03-14T21:41:00.000Z","5.8",[118,119,20,120,22],"booking","calendar","elementor","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fautomaize-class-schedule\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fautomaize-class-schedule.1.0.10.zip",{"slug":124,"name":125,"version":126,"author":127,"author_profile":128,"description":129,"short_description":130,"active_installs":27,"downloaded":131,"rating":27,"num_ratings":27,"last_updated":17,"tested_up_to":132,"requires_at_least":133,"requires_php":17,"tags":134,"homepage":137,"download_link":138,"security_score":139,"vuln_count":140,"unpatched_count":27,"last_vuln_date":141,"fetched_at":142},"mindbody-access-management","MZ MBO Access","2.1.6","mikeill","https:\u002F\u002Fprofiles.wordpress.org\u002Fmikeill\u002F","\u003Cp>Install and you can limit content based on user MBO memberships:\u003C\u002Fp>\n\u003Cp>[mbo-client-access access_levels=”1, 2″]\u003Cbr \u002F>\nRESTRICTED CONTENT HERE\u003Cbr \u002F>\n[\u002Fmbo-client-access]\u003C\u002Fp>\n\u003Cp>You can also redirect users based on their access level.\u003Cbr \u002F>\nUntil later in 2020, requires access to MBOs v5 (not v6) API.\u003C\u002Fp>\n\u003Ch3>Notes\u003C\u002Fh3>\n\u003Cp>None yet. Hopefully will work well.\u003C\u002Fp>\n","Restrict wordpress content based on client Mindbody account details. Create two access levels based on MBO membership details.",1574,"5.7.15","3.0.1",[119,135,21,22,136],"mbo","yoga","http:\u002F\u002Fwww.mzoo.org\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmindbody-access-management.2.1.6.zip",99,1,"2021-06-30 00:00:00","2026-03-15T10:48:56.248Z",{"attackSurface":144,"codeSignals":274,"taintFlows":333,"riskAssessment":413,"analyzedAt":427},{"hooks":145,"ajaxHandlers":237,"restRoutes":267,"shortcodes":268,"cronEvents":272,"entryPointCount":196,"unprotectedCount":273},[146,151,155,159,163,166,170,174,179,183,185,189,193,198,201,205,209,213,216,219,223,226,230,233],{"type":147,"name":148,"callback":148,"file":149,"line":150},"action","init","mb-spirit.php",61,{"type":147,"name":152,"callback":153,"file":149,"line":154},"elementor\u002Feditor\u002Fbefore_enqueue_scripts","closure",64,{"type":147,"name":156,"callback":157,"file":149,"line":158},"activated_plugin","activation_redirect",71,{"type":147,"name":160,"callback":161,"file":149,"line":162},"admin_enqueue_scripts","init_scripts",72,{"type":147,"name":164,"callback":164,"file":149,"line":165},"admin_menu",73,{"type":147,"name":167,"callback":168,"file":149,"line":169},"admin_notices","show_notices",74,{"type":147,"name":171,"callback":172,"file":149,"line":173},"wp_dashboard_setup","add_dashboard_widgets",75,{"type":175,"name":176,"callback":177,"file":149,"line":178},"filter","wp_link_query_args","editor_link_query",76,{"type":175,"name":180,"callback":181,"priority":96,"file":149,"line":182},"wp_link_query","editor_links",77,{"type":147,"name":184,"callback":161,"file":149,"line":62},"wp_enqueue_scripts",{"type":175,"name":186,"callback":187,"file":149,"line":188},"document_title_parts","check_page_title",89,{"type":175,"name":190,"callback":191,"file":149,"line":192},"the_content","render_default_pages",91,{"type":175,"name":194,"callback":195,"priority":196,"file":149,"line":197},"gutenberg_can_edit_post","__return_false",9,168,{"type":175,"name":199,"callback":195,"priority":196,"file":149,"line":200},"use_block_editor_for_post",169,{"type":147,"name":202,"callback":203,"file":149,"line":204},"media_buttons","media_btn",241,{"type":175,"name":206,"callback":207,"file":149,"line":208},"wpseo_canonical","set_single_url",606,{"type":175,"name":210,"callback":211,"file":149,"line":212},"wpseo_metadesc","set_single_desc",607,{"type":175,"name":214,"callback":211,"file":149,"line":215},"wpseo_opengraph_desc",608,{"type":175,"name":217,"callback":211,"file":149,"line":218},"wpseo_twitter_description",609,{"type":175,"name":220,"callback":221,"file":149,"line":222},"wpseo_title","set_single_title",610,{"type":175,"name":224,"callback":221,"file":149,"line":225},"wpseo_twitter_title",611,{"type":175,"name":227,"callback":228,"file":149,"line":229},"wpseo_opengraph_image","set_single_img",612,{"type":175,"name":231,"callback":228,"file":149,"line":232},"wpseo_twitter_image",613,{"type":147,"name":234,"callback":235,"file":149,"line":236},"widgets_init","wp_register_mb_spirit_widget",1408,[238,242,246,249,253,257,261,264],{"action":239,"nopriv":240,"callback":241,"hasNonce":240,"hasCapCheck":240,"file":149,"line":75},"mb_spirit_add_sc_to_page",false,"add_sc_to_page",{"action":243,"nopriv":240,"callback":244,"hasNonce":240,"hasCapCheck":240,"file":149,"line":245},"mb_spirit_dismiss_notice","dismiss_notice",79,{"action":247,"nopriv":240,"callback":248,"hasNonce":240,"hasCapCheck":240,"file":149,"line":48},"mb_spirit_api_proxy","api_proxy",{"action":250,"nopriv":240,"callback":251,"hasNonce":240,"hasCapCheck":240,"file":149,"line":252},"mb_spirit_complete_register","complete_register",81,{"action":254,"nopriv":240,"callback":255,"hasNonce":240,"hasCapCheck":240,"file":149,"line":256},"mb_spirit_lookup_account","lookup_account",82,{"action":258,"nopriv":240,"callback":259,"hasNonce":240,"hasCapCheck":240,"file":149,"line":260},"mb_spirit_connect_account","connect_account",83,{"action":262,"nopriv":240,"callback":263,"hasNonce":240,"hasCapCheck":240,"file":149,"line":35},"mb_spirit_refresh_site","refresh_site",{"action":265,"nopriv":240,"callback":266,"hasNonce":240,"hasCapCheck":240,"file":149,"line":26},"mb_spirit_refresh_state","refresh_state",[],[269],{"tag":270,"callback":271,"file":149,"line":73},"mb-spirit","sc_mb_spirit",[],8,{"dangerousFunctions":275,"sqlUsage":276,"outputEscaping":281,"fileOperations":27,"externalRequests":140,"nonceChecks":27,"capabilityChecks":32,"bundledLibraries":332},[],{"prepared":140,"raw":140,"locations":277},[278],{"file":149,"line":279,"context":280},475,"$wpdb->query() with variable interpolation",{"escaped":282,"rawEcho":283,"locations":284},6,23,[285,288,290,292,294,296,298,300,302,304,306,308,310,312,314,316,318,320,322,324,326,328,330],{"file":149,"line":286,"context":287},228,"raw output",{"file":149,"line":289,"context":287},234,{"file":149,"line":291,"context":287},236,{"file":149,"line":293,"context":287},256,{"file":149,"line":295,"context":287},262,{"file":149,"line":297,"context":287},284,{"file":149,"line":299,"context":287},299,{"file":149,"line":301,"context":287},318,{"file":149,"line":303,"context":287},349,{"file":149,"line":305,"context":287},482,{"file":149,"line":307,"context":287},504,{"file":149,"line":309,"context":287},1070,{"file":149,"line":311,"context":287},1072,{"file":149,"line":313,"context":287},1088,{"file":149,"line":315,"context":287},1090,{"file":149,"line":317,"context":287},1116,{"file":149,"line":319,"context":287},1118,{"file":149,"line":321,"context":287},1152,{"file":149,"line":323,"context":287},1178,{"file":149,"line":325,"context":287},1225,{"file":149,"line":327,"context":287},1342,{"file":149,"line":329,"context":287},1346,{"file":149,"line":331,"context":287},1385,[],[334,351,361,370,379,393],{"entryPoint":335,"graph":336,"unsanitizedCount":140,"severity":350},"api_proxy (mb-spirit.php:245)",{"nodes":337,"edges":348},[338,343],{"id":339,"type":340,"label":341,"file":149,"line":342},"n0","source","$_GET",249,{"id":344,"type":345,"label":346,"file":149,"line":293,"wp_function":347},"n1","sink","echo() [XSS]","echo",[349],{"from":339,"to":344,"sanitized":240},"medium",{"entryPoint":352,"graph":353,"unsanitizedCount":140,"severity":350},"complete_register (mb-spirit.php:266)",{"nodes":354,"edges":359},[355,358],{"id":339,"type":340,"label":356,"file":149,"line":357},"$_POST",270,{"id":344,"type":345,"label":346,"file":149,"line":297,"wp_function":347},[360],{"from":339,"to":344,"sanitized":240},{"entryPoint":362,"graph":363,"unsanitizedCount":140,"severity":350},"lookup_account (mb-spirit.php:288)",{"nodes":364,"edges":368},[365,367],{"id":339,"type":340,"label":356,"file":149,"line":366},292,{"id":344,"type":345,"label":346,"file":149,"line":299,"wp_function":347},[369],{"from":339,"to":344,"sanitized":240},{"entryPoint":371,"graph":372,"unsanitizedCount":140,"severity":350},"show_overview_page (mb-spirit.php:1082)",{"nodes":373,"edges":377},[374,376],{"id":339,"type":340,"label":341,"file":149,"line":375},1086,{"id":344,"type":345,"label":346,"file":149,"line":313,"wp_function":347},[378],{"from":339,"to":344,"sanitized":240},{"entryPoint":380,"graph":381,"unsanitizedCount":27,"severity":392},"init (mb-spirit.php:162)",{"nodes":382,"edges":389},[383,385],{"id":339,"type":340,"label":356,"file":149,"line":384},181,{"id":344,"type":345,"label":386,"file":149,"line":387,"wp_function":388},"update_option() [Settings Manipulation]",215,"update_option",[390],{"from":339,"to":344,"sanitized":391},true,"low",{"entryPoint":394,"graph":395,"unsanitizedCount":27,"severity":392},"\u003Cmb-spirit> (mb-spirit.php:0)",{"nodes":396,"edges":409},[397,398,399,402,404,407],{"id":339,"type":340,"label":356,"file":149,"line":384},{"id":344,"type":345,"label":386,"file":149,"line":387,"wp_function":388},{"id":400,"type":340,"label":401,"file":149,"line":342},"n2","$_GET (x4)",{"id":403,"type":345,"label":346,"file":149,"line":293,"wp_function":347},"n3",{"id":405,"type":340,"label":406,"file":149,"line":357},"n4","$_POST (x7)",{"id":408,"type":345,"label":346,"file":149,"line":297,"wp_function":347},"n5",[410,411,412],{"from":339,"to":344,"sanitized":391},{"from":400,"to":403,"sanitized":391},{"from":405,"to":408,"sanitized":391},{"summary":414,"deductions":415},"The 'mb-spirit-for-mindbody' plugin v1.1.0 presents a mixed security posture. While it has no recorded vulnerability history, indicating past diligence or a lack of past exploitation, the static analysis reveals significant concerns. The plugin exposes a substantial attack surface with 8 AJAX handlers, all of which lack authentication checks. This is a critical oversight, as it allows unauthenticated users to trigger potentially sensitive actions within the plugin. Furthermore, the low percentage of properly escaped output (21%) suggests a high risk of Cross-Site Scripting (XSS) vulnerabilities, allowing attackers to inject malicious scripts into the user interface. The presence of flows with unsanitized paths in the taint analysis, although not flagged as critical or high, also warrants attention as it could indicate potential path traversal or file inclusion issues if not handled carefully. The lack of nonce checks on AJAX handlers is a direct invitation for CSRF attacks. While the absence of dangerous functions and file operations is positive, the overall lack of robust security controls on its entry points is a significant weakness.",[416,418,420,422,425],{"reason":417,"points":96},"AJAX handlers without auth checks",{"reason":419,"points":273},"Low percentage of proper output escaping",{"reason":421,"points":282},"Unsanitized paths in taint analysis",{"reason":423,"points":424},"Lack of nonce checks on AJAX handlers",7,{"reason":426,"points":13},"SQL queries with prepared statements at 50%","2026-03-16T21:14:27.901Z",{"wat":429,"direct":437},{"assetPaths":430,"generatorPatterns":432,"scriptPaths":433,"versionParams":435},[431],"\u002Fwp-content\u002Fplugins\u002Fmb-spirit-for-mindbody\u002Fstyle\u002Fadmin.css",[],[434],"\u002Fwp-content\u002Fplugins\u002Fmb-spirit-for-mindbody\u002Fjs\u002Fadmin.js",[436],"mb-spirit-for-mindbody\u002Fstyle.css?ver=",{"cssClasses":438,"htmlComments":439,"htmlAttributes":440,"restEndpoints":441,"jsGlobals":442,"shortcodeOutput":443},[],[],[],[],[],[]]