[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fhtugcoyXSIsVK_yvx1RH3AydEpfKMA3hf0hRcF_dYvI":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":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":16,"tags":17,"homepage":16,"download_link":23,"security_score":24,"vuln_count":13,"unpatched_count":13,"last_vuln_date":25,"fetched_at":26,"vulnerabilities":27,"developer":28,"crawl_stats":25,"alternatives":33,"analysis":137,"fingerprints":529},"kd-submissions","KD Submissions","2.0.1","keydigital1","https:\u002F\u002Fprofiles.wordpress.org\u002Fkeydigital1\u002F","\u003Cp>The KD Submissions plugin provides an all-in-one solution for managing and filtering submissions created by Elementor Submissions directly from the WordPress admin panel. It comes with features for efficient submission tracking and status management:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Assign multiple statuses to each submission.\u003C\u002Fli>\n\u003Cli>Filter submissions by form type, status, and creation date.\u003C\u002Fli>\n\u003Cli>Add, edit, or delete custom statuses.\u003C\u002Fli>\n\u003Cli>Include comments for submissions, displayed as customizable pills for clarity.\u003C\u002Fli>\n\u003Cli>Real-time updates for all actions, ensuring a smooth user experience.\u003C\u002Fli>\n\u003Cli>AJAX-powered operations for dynamic functionality without page reloads.\u003C\u002Fli>\n\u003C\u002Ful>\n","An intuitive WordPress plugin for managing submissions created by Elementor Submissions, statuses, and comments with seamless admin tools. ---",90,1321,0,"2025-12-17T09:16:00.000Z","6.7.5","",[18,19,20,21,22],"admin-tools","comments","management","statuses","submissions","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fkd-submissions.2.0.1.zip",100,null,"2026-03-15T15:16:48.613Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":29,"total_installs":11,"avg_security_score":24,"avg_patch_time_days":30,"trust_score":31,"computed_at":32},1,30,94,"2026-04-04T08:39:33.283Z",[34,59,79,98,117],{"slug":35,"name":36,"version":37,"author":38,"author_profile":39,"description":40,"short_description":41,"active_installs":42,"downloaded":43,"rating":44,"num_ratings":45,"last_updated":46,"tested_up_to":47,"requires_at_least":48,"requires_php":16,"tags":49,"homepage":16,"download_link":55,"security_score":56,"vuln_count":57,"unpatched_count":29,"last_vuln_date":58,"fetched_at":26},"show-all-comments-in-one-page","Show All Comments","7.0.1","AppJetty","https:\u002F\u002Fprofiles.wordpress.org\u002Fbiztechc\u002F","\u003Cp>Plugin’s settings will display at Settings > BT Comments\u003C\u002Fp>\n\u003Col>\n\u003Cli>This plugin is useful for displaying all comments in one single page.\u003C\u002Fli>\n\u003Cli>You can displaying all the comments which are in posts or pages. For that you must choose pages or Posts at settings.\u003C\u002Fli>\n\u003Cli>Using related short code all the comments will displaying on assigned page.\u003C\u002Fli>\n\u003Cli>Short code is : [bt_comments]\u003C\u002Fli>\n\u003Cli>You can override admin setings in different page by using parameters with shortcode like:  pagination=yes\u002Fno , comments_per_page={number} and display_filter=yes\u002Fno.\u003C\u002Fli>\n\u003Cli>You can apply this short code into page\u002Fpost’s editor or also can add into PHP file.\u003Cbr \u002F>\nLike\n   \u003C\u002Fli>\n\u003Cli>You can also exclude pages or posts for which you dont want to show comments.\u003C\u002Fli>\n\u003Cli>Comments will displaying into pagination format if you select pagination option into setting. \u003C\u002Fli>\n\u003Cli>On front side there will be filter to search comments by post\u002Fcategories on front side.You can enable\u002Fdisable this filter from admin settings page.\u003C\u002Fli>\n\u003C\u002Fol>\n","This plugin displays all the comments received on your various posts in a single page with filter, enabling the readers to read all the comments in a  &hellip;",500,16379,78,14,"2022-12-21T05:55:00.000Z","6.1.10","3.6.1",[50,51,52,53,54],"all-comments-in-one-page","comments-filter","eazy-comments-management","manage-all-comments-in-one-page","show-all-comments","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fshow-all-comments-in-one-page.zip",62,2,"2025-05-07 00:00:00",{"slug":60,"name":61,"version":62,"author":63,"author_profile":64,"description":65,"short_description":66,"active_installs":67,"downloaded":68,"rating":24,"num_ratings":29,"last_updated":69,"tested_up_to":70,"requires_at_least":71,"requires_php":72,"tags":73,"homepage":16,"download_link":78,"security_score":24,"vuln_count":13,"unpatched_count":13,"last_vuln_date":25,"fetched_at":26},"bulk-delete-users-by-keyword","Bulk Delete Users by Keyword","2.0","Shiek Md Anwar Hussain Mizan (Sheikh MiZan)","https:\u002F\u002Fprofiles.wordpress.org\u002Fsheikhmizanbd\u002F","\u003Cp>The \u003Cstrong>Bulk Delete Users by Keyword\u003C\u002Fstrong> plugin provides administrators with a powerful tool for cleaning up user databases by allowing bulk deletion based on specific keywords. Perfect for removing spam accounts, inactive users, or performing database maintenance.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Key Features:\u003C\u002Fstrong>\u003Cbr \u002F>\n– Advanced keyword filtering across multiple user fields (username, email, display name)\u003Cbr \u002F>\n– Batch processing for handling large user databases efficiently\u003Cbr \u002F>\n– Real-time progress tracking during deletion operations\u003Cbr \u002F>\n– Comprehensive safety warnings and confirmations\u003Cbr \u002F>\n– Customizable batch sizes for optimal performance\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Enhanced Functionality in Version 2.0:\u003C\u002Fstrong>\u003Cbr \u002F>\n– AJAX-powered processing for smooth operation\u003Cbr \u002F>\n– Detailed progress reporting\u003Cbr \u002F>\n– Support for multiple search fields\u003Cbr \u002F>\n– Improved user interface\u003Cbr \u002F>\n– Better error handling and notifications\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Ch4>Core Functionality\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Keyword-based user filtering and deletion\u003C\u002Fli>\n\u003Cli>Batch processing for large datasets\u003C\u002Fli>\n\u003Cli>Multi-field search (username, email, display name, nickname)\u003C\u002Fli>\n\u003Cli>Progress tracking during operations\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Safety Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Explicit warning messages\u003C\u002Fli>\n\u003Cli>Confirmation dialogs\u003C\u002Fli>\n\u003Cli>Nonce verification for all operations\u003C\u002Fli>\n\u003Cli>Capability checks\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Performance\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Optimized database queries\u003C\u002Fli>\n\u003Cli>Configurable batch sizes\u003C\u002Fli>\n\u003Cli>Memory-efficient processing\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>GNU General Public License v2.0 or later\u003C\u002Fp>\n\u003Ch3>Privacy Notice\u003C\u002Fh3>\n\u003Cp>This plugin does not collect any user data or transmit information to external servers. All operations occur entirely within your WordPress installation.\u003C\u002Fp>\n","Efficiently manage your WordPress users with keyword-based bulk deletion capabilities.",70,1036,"2025-06-22T10:42:00.000Z","6.8.5","5.5","7.4",[18,74,75,76,77],"bulk-delete","delete-users","keyword-based-deletion","user-management","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbulk-delete-users-by-keyword.zip",{"slug":80,"name":81,"version":82,"author":83,"author_profile":84,"description":85,"short_description":86,"active_installs":87,"downloaded":88,"rating":13,"num_ratings":13,"last_updated":89,"tested_up_to":90,"requires_at_least":91,"requires_php":72,"tags":92,"homepage":96,"download_link":97,"security_score":24,"vuln_count":13,"unpatched_count":13,"last_vuln_date":25,"fetched_at":26},"multisite-usage-scanner","Multisite Usage Scanner","1.0.2","Dominic Johnson","https:\u002F\u002Fprofiles.wordpress.org\u002Fdominicmiramediacouk\u002F","\u003Cp>Multisite Usage Scanner helps WordPress network administrators audit plugin usage across all sites in a multisite installation.\u003C\u002Fp>\n\u003Cp>It provides a simple admin interface to:\u003Cbr \u002F>\n* List all active plugins per site\u003Cbr \u002F>\n* Identify unused plugins across the network\u003Cbr \u002F>\n* Export usage data for reporting or cleanup\u003C\u002Fp>\n\u003Cp>This tool is especially useful for large networks with legacy plugins or unclear usage patterns.\u003C\u002Fp>\n","Scan your WordPress multisite network to identify which plugins are actively used across sites. Helps admins safely clean up unused plugins.",60,356,"2026-01-01T09:54:00.000Z","6.9.4","5.0",[18,93,94,95],"diagnostics","multisite","plugin-management","https:\u002F\u002Fgithub.com\u002Fdominicjjohnson\u002Fplugin.multisite-usage-scanner","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmultisite-usage-scanner.1.0.2.zip",{"slug":99,"name":100,"version":101,"author":102,"author_profile":103,"description":104,"short_description":105,"active_installs":106,"downloaded":107,"rating":13,"num_ratings":13,"last_updated":108,"tested_up_to":15,"requires_at_least":109,"requires_php":110,"tags":111,"homepage":115,"download_link":116,"security_score":24,"vuln_count":13,"unpatched_count":13,"last_vuln_date":25,"fetched_at":26},"modules-insight","Modules Insight","2.9.2","FroPT","https:\u002F\u002Fprofiles.wordpress.org\u002Ffropt\u002F","\u003Cp>\u003Cstrong>Modules Insight\u003C\u002Fstrong> is a simple WordPress plugin that lists all installed plugins, showing which are \u003Cstrong>active\u003C\u002Fstrong> and which are \u003Cstrong>inactive\u003C\u002Fstrong>. Ideal for developers and site managers needing a quick status overview.\u003C\u002Fp>\n\u003Cp>MI adds a widget to your \u003Cstrong>Dashboard\u003C\u002Fstrong> and provides a shortcode \u003Ccode>[plugin_list]\u003C\u002Fcode> for displaying the plugin status list. It also allows \u003Cstrong>Administrators\u003C\u002Fstrong> to download the list as a \u003Ccode>.json\u003C\u002Fcode> report directly from the widget or shortcode output.\u003C\u002Fp>\n\u003Cp>MI is completely read-only and does \u003Cstrong>not\u003C\u002Fstrong> make any changes to your site’s plugin activation status.\u003C\u002Fp>\n\u003Ch3>✨ Key Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>📋 Lists all installed plugins (active, inactive, network active)\u003C\u002Fli>\n\u003Cli>✅ Includes plugin name and version. \u003C\u002Fli>\n\u003Cli>📊 Displays a summary count of plugins\u003C\u002Fli>\n\u003Cli>📁 Allows \u003Cstrong>Administrators\u003C\u002Fstrong> to export plugin data as a \u003Ccode>.json\u003C\u002Fcode> report\u003C\u002Fli>\n\u003Cli>🖥 Adds a convenient Dashboard Widget\u003C\u002Fli>\n\u003Cli>\u003Ccode>[plugin_list]\u003C\u002Fcode> Shortcode support for display anywhere\u003C\u002Fli>\n\u003Cli>\n\u003Cul>\n\u003Cli>Upcoming: Plugin description on generated page\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>🛡 100% read-only — safe for production use\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>💡 Use Cases\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>🧾 Client reports on installed plugins\u003C\u002Fli>\n\u003Cli>🚧 Pre-deployment or pre-update plugin checks\u003C\u002Fli>\n\u003Cli>🔒 Identifying potentially unused plugins for cleanup\u003C\u002Fli>\n\u003Cli>👥 Sharing plugin status easily with your team or support\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>Made with ❤️ by Pedro Matias for WordPress developers and admins.\u003C\u002Fp>\n","Provides a quick overview of installed WordPress plugins with their status, exportable as JSON.",20,247,"2025-04-14T15:55:00.000Z","5.2","7.2",[18,112,95,113,114],"developer-tools","plugin-report","plugin-status","https:\u002F\u002Fgithub.com\u002Fmatias2018\u002FPlugin-List-Display","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmodules-insight.zip",{"slug":118,"name":119,"version":120,"author":121,"author_profile":122,"description":123,"short_description":124,"active_installs":125,"downloaded":126,"rating":127,"num_ratings":128,"last_updated":129,"tested_up_to":70,"requires_at_least":130,"requires_php":131,"tags":132,"homepage":135,"download_link":136,"security_score":24,"vuln_count":13,"unpatched_count":13,"last_vuln_date":25,"fetched_at":26},"betta-comments","Betta Comments","1.3.0","Willard Muzaeni","https:\u002F\u002Fprofiles.wordpress.org\u002Fwilsoft\u002F","\u003Cp>Betta Comments is a comprehensive solution for WordPress administrators to efficiently manage comments and reviews. This plugin enhances the native WordPress comment management features by allowing administrators to bulk delete comments and reviews, apply advanced filters, and ensure that comment management is streamlined and secure.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Key Features:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Bulk delete comments and reviews.\u003Cbr \u002F>\n* Filter comments\u002Freviews by status (approved, pending, spam, trash).\u003Cbr \u002F>\n* Select specific comments\u002Freviews for deletion.\u003Cbr \u002F>\n* Clear confirmation dialog before deleting multiple items.\u003Cbr \u002F>\n* Enhanced security measures to prevent accidental mass deletions.\u003Cbr \u002F>\n* User-friendly interface with intuitive controls and progress indicators.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Additional Features:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Delete comments\u002Freviews based on date range or author.\u003Cbr \u002F>\n* Integration with existing WordPress comment\u002Freview management tools.\u003C\u002Fp>\n\u003Cp>This plugin is essential for any WordPress site with a high volume of comments or reviews, ensuring that comment management is as efficient and secure as possible.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Efficient management of large comment volumes with pagination\u003C\u002Fli>\n\u003Cli>Customizable entries per page (25, 50, or 100)\u003C\u002Fli>\n\u003Cli>Quick access from plugin page with direct navigation link\u003C\u002Fli>\n\u003Cli>Comprehensive filtering options for comments and reviews\u003C\u002Fli>\n\u003Cli>Bulk delete functionality with confirmation safeguards\u003C\u002Fli>\n\u003Cli>User-friendly interface with intuitive controls\u003C\u002Fli>\n\u003Cli>Visual comment count indicator in admin menu\u003C\u002Fli>\n\u003Cli>Compatible with both comments and reviews\u003C\u002Fli>\n\u003Cli>Secure implementation following WordPress best practices\u003C\u002Fli>\n\u003C\u002Ful>\n","A powerful tool for bulk deleting, filtering, and managing WordPress comments and reviews with ease.",10,1129,96,5,"2025-05-16T05:24:00.000Z","5.7","7.0",[74,19,133,20,134],"filter","reviews","https:\u002F\u002Fwilsoft.co.zw\u002Fbetta-comments","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbetta-comments.1.3.0.zip",{"attackSurface":138,"codeSignals":261,"taintFlows":386,"riskAssessment":525,"analyzedAt":528},{"hooks":139,"ajaxHandlers":201,"restRoutes":257,"shortcodes":258,"cronEvents":259,"entryPointCount":260,"unprotectedCount":13},[140,146,150,154,158,161,165,169,173,177,181,185,189,193,196,199],{"type":141,"name":142,"callback":143,"priority":24,"file":144,"line":145},"action","admin_bar_menu","render","includes\\Admin\\AdminBar.php",11,{"type":141,"name":147,"callback":148,"file":149,"line":145},"init","registerAll","includes\\Assets.php",{"type":141,"name":151,"callback":152,"file":149,"line":153},"keyd_enqueue_submissions_assets","enqueueForTemplates",12,{"type":141,"name":155,"callback":156,"file":149,"line":157},"wp_enqueue_scripts","enqueueFrontend",13,{"type":141,"name":159,"callback":160,"file":149,"line":45},"admin_enqueue_scripts","enqueueSettings",{"type":141,"name":162,"callback":163,"file":164,"line":145},"admin_menu","menus","includes\\Menu.php",{"type":141,"name":147,"callback":166,"file":167,"line":168},"addRules","includes\\Rewrite.php",21,{"type":133,"name":170,"callback":171,"file":167,"line":172},"query_vars","addQueryVars",22,{"type":141,"name":174,"callback":175,"file":167,"line":176},"pre_get_posts","flagAsPage",23,{"type":141,"name":178,"callback":143,"priority":179,"file":167,"line":180},"template_redirect",9,24,{"type":141,"name":182,"callback":183,"file":184,"line":176},"rest_api_init","registerRoutes","includes\\Services\\WhmcsLiveEndpoint.php",{"type":141,"name":147,"callback":186,"file":187,"line":188},"maybeSchedule","includes\\Services\\WhmcsSync.php",18,{"type":141,"name":147,"callback":190,"file":191,"line":192},"closure","kd-submissions.php",64,{"type":141,"name":194,"callback":190,"file":191,"line":195},"plugins_loaded",111,{"type":141,"name":155,"callback":190,"file":197,"line":198},"referral\\init.php",8,{"type":141,"name":200,"callback":190,"priority":125,"file":197,"line":153},"elementor_pro\u002Fforms\u002Fnew_record",[202,208,211,214,217,220,223,226,229,232,235,238,241,244,247,250,253],{"action":203,"nopriv":204,"callback":205,"hasNonce":206,"hasCapCheck":204,"file":207,"line":145},"add_comment",false,"handle",true,"includes\\Admin\\Ajax\\AddComment.php",{"action":209,"nopriv":204,"callback":205,"hasNonce":206,"hasCapCheck":204,"file":210,"line":145},"add_status","includes\\Admin\\Ajax\\AddStatus.php",{"action":212,"nopriv":204,"callback":205,"hasNonce":206,"hasCapCheck":204,"file":213,"line":145},"add_submission","includes\\Admin\\Ajax\\AddSubmission.php",{"action":215,"nopriv":204,"callback":205,"hasNonce":206,"hasCapCheck":204,"file":216,"line":145},"delete_comment","includes\\Admin\\Ajax\\DeleteComment.php",{"action":218,"nopriv":204,"callback":205,"hasNonce":206,"hasCapCheck":204,"file":219,"line":145},"delete_status","includes\\Admin\\Ajax\\DeleteStatus.php",{"action":221,"nopriv":204,"callback":205,"hasNonce":206,"hasCapCheck":204,"file":222,"line":145},"delete_submissions","includes\\Admin\\Ajax\\DeleteSubmissions.php",{"action":224,"nopriv":204,"callback":205,"hasNonce":206,"hasCapCheck":204,"file":225,"line":145},"delete_submission_status","includes\\Admin\\Ajax\\DeleteSubmissionStatus.php",{"action":227,"nopriv":204,"callback":205,"hasNonce":206,"hasCapCheck":204,"file":228,"line":45},"filter_submissions_by_form","includes\\Admin\\Ajax\\FilterSubmissionsByForm.php",{"action":230,"nopriv":204,"callback":205,"hasNonce":206,"hasCapCheck":204,"file":231,"line":145},"get_form_fields","includes\\Admin\\Ajax\\GetFormFields.php",{"action":233,"nopriv":204,"callback":205,"hasNonce":206,"hasCapCheck":204,"file":234,"line":145},"get_statuses","includes\\Admin\\Ajax\\GetStatuses.php",{"action":236,"nopriv":204,"callback":205,"hasNonce":206,"hasCapCheck":206,"file":237,"line":145},"keyd_get_submission_details","includes\\Admin\\Ajax\\GetSubmissionDetails.php",{"action":239,"nopriv":204,"callback":205,"hasNonce":206,"hasCapCheck":206,"file":240,"line":145},"keyd_mark_all_unread_read","includes\\Admin\\Ajax\\MarkAllUnreadRead.php",{"action":242,"nopriv":204,"callback":205,"hasNonce":206,"hasCapCheck":206,"file":243,"line":145},"keyd_mark_submission_read","includes\\Admin\\Ajax\\MarkSubmissionRead.php",{"action":245,"nopriv":204,"callback":205,"hasNonce":206,"hasCapCheck":204,"file":246,"line":145},"update_submission_key","includes\\Admin\\Ajax\\UpdateSubmissionKey.php",{"action":248,"nopriv":204,"callback":205,"hasNonce":206,"hasCapCheck":206,"file":249,"line":145},"keyd_update_submission_status","includes\\Admin\\Ajax\\UpdateSubmissionStatus.php",{"action":251,"nopriv":204,"callback":205,"hasNonce":206,"hasCapCheck":204,"file":252,"line":145},"update_submission_statuses","includes\\Admin\\Ajax\\UpdateSubmissionStatuses.php",{"action":254,"nopriv":204,"callback":255,"hasNonce":206,"hasCapCheck":206,"file":256,"line":145},"get_dashboard_stats","ajaxStats","includes\\Admin\\DashboardPage.php",[],[],[],17,{"dangerousFunctions":262,"sqlUsage":263,"outputEscaping":347,"fileOperations":29,"externalRequests":29,"nonceChecks":188,"capabilityChecks":188,"bundledLibraries":385},[],{"prepared":264,"raw":265,"locations":266},108,37,[267,270,271,274,276,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,312,314,315,317,321,323,326,328,330,334,336,338,339,341,343,346],{"file":234,"line":268,"context":269},19,"$wpdb->get_results() with variable interpolation",{"file":237,"line":67,"context":269},{"file":272,"line":273,"context":269},"includes\\Data\\MappingRepository.php",57,{"file":275,"line":180,"context":269},"includes\\Data\\StatusRepository.php",{"file":277,"line":278,"context":279},"includes\\Services\\DashboardStats.php",41,"$wpdb->get_var() with variable interpolation",{"file":277,"line":281,"context":279},61,{"file":277,"line":283,"context":279},65,{"file":277,"line":285,"context":279},76,{"file":277,"line":287,"context":279},80,{"file":277,"line":289,"context":269},88,{"file":277,"line":291,"context":269},98,{"file":277,"line":293,"context":279},109,{"file":277,"line":295,"context":279},123,{"file":277,"line":297,"context":269},130,{"file":277,"line":299,"context":269},139,{"file":277,"line":301,"context":269},149,{"file":277,"line":303,"context":269},206,{"file":277,"line":305,"context":269},215,{"file":277,"line":307,"context":279},323,{"file":277,"line":309,"context":279},324,{"file":277,"line":311,"context":269},336,{"file":277,"line":313,"context":269},343,{"file":184,"line":285,"context":279},{"file":187,"line":316,"context":279},209,{"file":318,"line":319,"context":320},"includes\\Tables\\Collation.php",34,"$wpdb->query() with variable interpolation",{"file":318,"line":322,"context":320},53,{"file":324,"line":325,"context":320},"includes\\Tables\\Migrator.php",220,{"file":324,"line":327,"context":320},233,{"file":324,"line":329,"context":320},248,{"file":331,"line":332,"context":333},"settings\\init.php",71,"$wpdb->get_col() with variable interpolation",{"file":331,"line":335,"context":269},74,{"file":337,"line":67,"context":333},"templates\\dashboard\\index.php",{"file":337,"line":335,"context":269},{"file":340,"line":153,"context":269},"templates\\submissions\\add.php",{"file":340,"line":342,"context":269},16,{"file":344,"line":345,"context":333},"templates\\submissions\\list.php",95,{"file":344,"line":291,"context":269},{"escaped":348,"rawEcho":106,"locations":349},132,[350,353,355,356,359,360,362,363,364,365,367,369,371,374,375,377,378,380,381,383],{"file":237,"line":351,"context":352},135,"raw output",{"file":237,"line":354,"context":352},138,{"file":164,"line":278,"context":352},{"file":357,"line":358,"context":352},"includes\\Utils\\View.php",27,{"file":337,"line":168,"context":352},{"file":340,"line":361,"context":352},25,{"file":344,"line":260,"context":352},{"file":344,"line":176,"context":352},{"file":344,"line":358,"context":352},{"file":344,"line":366,"context":352},55,{"file":368,"line":285,"context":352},"templates\\submissions\\new.php",{"file":368,"line":370,"context":352},152,{"file":372,"line":373,"context":352},"templates\\submissions\\table.php",42,{"file":372,"line":322,"context":352},{"file":372,"line":376,"context":352},56,{"file":372,"line":285,"context":352},{"file":372,"line":379,"context":352},81,{"file":372,"line":289,"context":352},{"file":372,"line":382,"context":352},112,{"file":372,"line":384,"context":352},119,[],[387,404,412,423,431,441,449,457,465,481,492,501,509,517],{"entryPoint":388,"graph":389,"unsanitizedCount":13,"severity":403},"handle (includes\\Admin\\Ajax\\AddStatus.php:14)",{"nodes":390,"edges":401},[391,395],{"id":392,"type":393,"label":394,"file":210,"line":188},"n0","source","$_POST (x2)",{"id":396,"type":397,"label":398,"file":210,"line":399,"wp_function":400},"n1","sink","get_var() [SQLi]",29,"get_var",[402],{"from":392,"to":396,"sanitized":206},"low",{"entryPoint":405,"graph":406,"unsanitizedCount":13,"severity":403},"\u003CAddStatus> (includes\\Admin\\Ajax\\AddStatus.php:0)",{"nodes":407,"edges":410},[408,409],{"id":392,"type":393,"label":394,"file":210,"line":188},{"id":396,"type":397,"label":398,"file":210,"line":399,"wp_function":400},[411],{"from":392,"to":396,"sanitized":206},{"entryPoint":413,"graph":414,"unsanitizedCount":13,"severity":403},"handle (includes\\Admin\\Ajax\\DeleteStatus.php:14)",{"nodes":415,"edges":421},[416,418],{"id":392,"type":393,"label":417,"file":219,"line":188},"$_POST",{"id":396,"type":397,"label":419,"file":219,"line":358,"wp_function":420},"query() [SQLi]","query",[422],{"from":392,"to":396,"sanitized":206},{"entryPoint":424,"graph":425,"unsanitizedCount":13,"severity":403},"\u003CDeleteStatus> (includes\\Admin\\Ajax\\DeleteStatus.php:0)",{"nodes":426,"edges":429},[427,428],{"id":392,"type":393,"label":417,"file":219,"line":188},{"id":396,"type":397,"label":419,"file":219,"line":358,"wp_function":420},[430],{"from":392,"to":396,"sanitized":206},{"entryPoint":432,"graph":433,"unsanitizedCount":13,"severity":403},"handle (includes\\Admin\\Ajax\\FilterSubmissionsByForm.php:17)",{"nodes":434,"edges":439},[435,436],{"id":392,"type":393,"label":394,"file":228,"line":180},{"id":396,"type":397,"label":437,"file":228,"line":278,"wp_function":438},"get_results() [SQLi]","get_results",[440],{"from":392,"to":396,"sanitized":206},{"entryPoint":442,"graph":443,"unsanitizedCount":13,"severity":403},"\u003CFilterSubmissionsByForm> (includes\\Admin\\Ajax\\FilterSubmissionsByForm.php:0)",{"nodes":444,"edges":447},[445,446],{"id":392,"type":393,"label":394,"file":228,"line":180},{"id":396,"type":397,"label":437,"file":228,"line":278,"wp_function":438},[448],{"from":392,"to":396,"sanitized":206},{"entryPoint":450,"graph":451,"unsanitizedCount":13,"severity":403},"handle (includes\\Admin\\Ajax\\GetFormFields.php:14)",{"nodes":452,"edges":455},[453,454],{"id":392,"type":393,"label":417,"file":231,"line":188},{"id":396,"type":397,"label":437,"file":231,"line":176,"wp_function":438},[456],{"from":392,"to":396,"sanitized":206},{"entryPoint":458,"graph":459,"unsanitizedCount":13,"severity":403},"\u003CGetFormFields> (includes\\Admin\\Ajax\\GetFormFields.php:0)",{"nodes":460,"edges":463},[461,462],{"id":392,"type":393,"label":417,"file":231,"line":188},{"id":396,"type":397,"label":437,"file":231,"line":176,"wp_function":438},[464],{"from":392,"to":396,"sanitized":206},{"entryPoint":466,"graph":467,"unsanitizedCount":13,"severity":403},"handle (includes\\Admin\\Ajax\\GetSubmissionDetails.php:14)",{"nodes":468,"edges":478},[469,470,474,476],{"id":392,"type":393,"label":394,"file":237,"line":361},{"id":396,"type":397,"label":471,"file":237,"line":472,"wp_function":473},"get_row() [SQLi]",38,"get_row",{"id":475,"type":393,"label":417,"file":237,"line":361},"n2",{"id":477,"type":397,"label":437,"file":237,"line":376,"wp_function":438},"n3",[479,480],{"from":392,"to":396,"sanitized":206},{"from":475,"to":477,"sanitized":206},{"entryPoint":482,"graph":483,"unsanitizedCount":13,"severity":403},"\u003CGetSubmissionDetails> (includes\\Admin\\Ajax\\GetSubmissionDetails.php:0)",{"nodes":484,"edges":489},[485,486,487,488],{"id":392,"type":393,"label":394,"file":237,"line":361},{"id":396,"type":397,"label":471,"file":237,"line":472,"wp_function":473},{"id":475,"type":393,"label":417,"file":237,"line":361},{"id":477,"type":397,"label":437,"file":237,"line":376,"wp_function":438},[490,491],{"from":392,"to":396,"sanitized":206},{"from":475,"to":477,"sanitized":206},{"entryPoint":493,"graph":494,"unsanitizedCount":13,"severity":403},"handle (includes\\Admin\\Ajax\\UpdateSubmissionStatus.php:14)",{"nodes":495,"edges":499},[496,497],{"id":392,"type":393,"label":417,"file":249,"line":399},{"id":396,"type":397,"label":471,"file":249,"line":498,"wp_function":473},40,[500],{"from":392,"to":396,"sanitized":206},{"entryPoint":502,"graph":503,"unsanitizedCount":13,"severity":403},"\u003CUpdateSubmissionStatus> (includes\\Admin\\Ajax\\UpdateSubmissionStatus.php:0)",{"nodes":504,"edges":507},[505,506],{"id":392,"type":393,"label":417,"file":249,"line":399},{"id":396,"type":397,"label":471,"file":249,"line":498,"wp_function":473},[508],{"from":392,"to":396,"sanitized":206},{"entryPoint":510,"graph":511,"unsanitizedCount":13,"severity":403},"handle (includes\\Admin\\Ajax\\UpdateSubmissionStatuses.php:14)",{"nodes":512,"edges":515},[513,514],{"id":392,"type":393,"label":417,"file":252,"line":106},{"id":396,"type":397,"label":398,"file":252,"line":30,"wp_function":400},[516],{"from":392,"to":396,"sanitized":206},{"entryPoint":518,"graph":519,"unsanitizedCount":13,"severity":403},"\u003CUpdateSubmissionStatuses> (includes\\Admin\\Ajax\\UpdateSubmissionStatuses.php:0)",{"nodes":520,"edges":523},[521,522],{"id":392,"type":393,"label":417,"file":252,"line":106},{"id":396,"type":397,"label":398,"file":252,"line":30,"wp_function":400},[524],{"from":392,"to":396,"sanitized":206},{"summary":526,"deductions":527},"The plugin 'kd-submissions' v2.0.1 exhibits a generally strong security posture based on the provided static analysis. A significant strength is the complete absence of unprotected entry points across all identified AJAX handlers. Furthermore, the plugin demonstrates good practices with a high percentage of SQL queries utilizing prepared statements and a robust rate of output escaping, minimizing common injection and XSS risks. The lack of any recorded vulnerabilities, including CVEs, further contributes to a positive security assessment.  However, while the code analysis signals are largely positive, the presence of file operations and external HTTP requests, even if only one each, warrants a degree of caution. Without further context or specific analysis of these operations, there's a theoretical risk of misconfiguration or unintended behavior that could be exploited.  The vulnerability history is a significant positive indicator of robust development practices over time.  In conclusion, 'kd-submissions' v2.0.1 appears to be a secure plugin with a commendable development history. The minimal risks identified stem from the inherent nature of certain operations (file handling, external requests) rather than overt coding flaws.",[],"2026-03-16T21:16:55.963Z",{"wat":530,"direct":551},{"assetPaths":531,"generatorPatterns":539,"scriptPaths":540,"versionParams":543},[532,533,534,535,536,537,538],"\u002Fwp-content\u002Fplugins\u002Fkd-submissions\u002Fassets\u002Fstyles.css","\u002Fwp-content\u002Fplugins\u002Fkd-submissions\u002Fassets\u002Fjs\u002Fchart.min.js","\u002Fwp-content\u002Fplugins\u002Fkd-submissions\u002Fassets\u002Fjs\u002Fscripts.js","\u002Fwp-content\u002Fplugins\u002Fkd-submissions\u002Fassets\u002Fjs\u002Fcolumn-toggle.js","\u002Fwp-content\u002Fplugins\u002Fkd-submissions\u002Fassets\u002Fjs\u002Fdashboard.js","\u002Fwp-content\u002Fplugins\u002Fkd-submissions\u002Freferral\u002Freferral-scripts.js","\u002Fwp-content\u002Fplugins\u002Fkd-submissions\u002Fsettings\u002Fsettings-scripts.js",[],[541,542],"..\u002Fplugins\u002Fkd-submissions\u002Freferral\u002Freferral-scripts.js","..\u002Fplugins\u002Fkd-submissions\u002Fsettings\u002Fsettings-scripts.js",[544,545,546,547,548,549,550],"kd-submissions\u002Fassets\u002Fstyles.css?ver=","kd-submissions\u002Fassets\u002Fjs\u002Fchart.min.js?ver=","kd-submissions\u002Fassets\u002Fjs\u002Fscripts.js?ver=","kd-submissions\u002Fassets\u002Fjs\u002Fcolumn-toggle.js?ver=","kd-submissions\u002Fassets\u002Fjs\u002Fdashboard.js?ver=","kd-submissions\u002Freferral\u002Freferral-scripts.js?ver=","kd-submissions\u002Fsettings\u002Fsettings-scripts.js?ver=",{"cssClasses":552,"htmlComments":562,"htmlAttributes":573,"restEndpoints":578,"jsGlobals":584,"shortcodeOutput":589},[553,554,555,556,557,558,559,560,561],"keyd-submissions-table","keyd-submissions-form","keyd-submissions-status","keyd-submissions-filter","keyd-submissions-pagination","keyd-submissions-dashboard","keyd-submissions-widget","keyd-submissions-list","keyd-submissions-detail",[563,564,565,566,567,568,569,570,571,572],"\u003C!-- KD Submissions: Plugin Bootstrap -->","\u003C!-- KD Submissions: Assets -->","\u003C!-- KD Submissions: Frontend Assets -->","\u003C!-- KD Submissions: Settings Assets -->","\u003C!-- KD Submissions: Elementor Pro Form Handler -->","\u003C!-- KD Submissions: Elementor Pro Submission Handler -->","\u003C!-- KD Submissions: Shortcode: submissions_list -->","\u003C!-- KD Submissions: Shortcode: submissions_form -->","\u003C!-- KD Submissions: Shortcode: submissions_dashboard -->","\u003C!-- KD Submissions: Shortcode: submissions_detail -->",[574,575,576,577],"data-keyd-submissions-id","data-keyd-submissions-field","data-keyd-submissions-action","data-keyd-submissions-nonce",[579,580,581,582,583],"\u002Fwp-json\u002Fkd-submissions\u002Fv1\u002Fsubmissions","\u002Fwp-json\u002Fkd-submissions\u002Fv1\u002Fsubmissions\u002F(?P\u003Cid>\\d+)","\u002Fwp-json\u002Fkd-submissions\u002Fv1\u002Fstatuses","\u002Fwp-json\u002Fkd-submissions\u002Fv1\u002Fstatuses\u002F(?P\u003Cid>\\d+)","\u002Fwp-json\u002Fkd-submissions\u002Fv1\u002Fsettings",[585,586,587,588],"wpSubmissionsAjax","KEYD_ASSETS_URL","KEYD_SUBMISSIONS_URL","KEYD_SUBMISSIONS_VERSION",[590,591,592,593],"[submissions_list]","[submissions_form]","[submissions_dashboard]","[submissions_detail]"]