[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fqDWIb3n0ncldCtnpRbItZsDWei8P_f1NKOcv-rAh9Ls":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":20,"download_link":21,"security_score":13,"vuln_count":22,"unpatched_count":22,"last_vuln_date":23,"fetched_at":24,"vulnerabilities":25,"developer":26,"crawl_stats":23,"alternatives":33,"analysis":34,"fingerprints":224},"ws-action-scheduler-cleaner","WS Action Scheduler Cleaner","1.2.5","Winning Solutions","https:\u002F\u002Fprofiles.wordpress.org\u002Fwinningsolutions\u002F","\u003Cp>WS Action Scheduler Cleaner is a small tool designed to optimize your WordPress database by managing the Action Scheduler tables. Action Scheduler, a robust job queue and background processing library, is utilized by many popular plugins such as WooCommerce, WP Forms, and Jetpack to handle resource-intensive tasks asynchronously.\u003C\u002Fp>\n\u003Cp>While Action Scheduler is crucial for the smooth operation of these plugins, its tables can grow significantly over time, potentially impacting your site’s performance. This is where WS Action Scheduler Cleaner comes in.\u003C\u002Fp>\n\u003Cp>Key features:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Easily clear completed, failed, or canceled actions from the Action Scheduler tables\u003C\u002Fli>\n\u003Cli>Set up automatic clearing schedules for efficient database maintenance\u003C\u002Fli>\n\u003Cli>Optimize the database tables to reclaim unused space and potentially improve performance\u003C\u002Fli>\n\u003Cli>Customize retention periods for logs and actions\u003C\u002Fli>\n\u003Cli>User-friendly interface integrated into the WordPress admin area\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>By regularly cleaning up unnecessary data from Action Scheduler tables, you can:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Improve database query performance\u003C\u002Fli>\n\u003Cli>Reduce database size\u003C\u002Fli>\n\u003Cli>Enhance overall site speed and responsiveness\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>WS Action Scheduler Cleaner is an essential tool for any WordPress site using plugins that rely on Action Scheduler, especially high-traffic e-commerce sites or membership platforms that generate a large number of scheduled actions.\u003C\u002Fp>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Col>\n\u003Cli>In the WordPress admin panel, go to Tools > Action Scheduler Cleaner\u003C\u002Fli>\n\u003Cli>Select which action statuses you want to clear (completed, failed, canceled)\u003C\u002Fli>\n\u003Cli>Set up different automatic clearing schedules if desired\u003C\u002Fli>\n\u003Cli>Click “Clear Selected Actions” to manually clear actions – or let the automatic schedule handle it\u003C\u002Fli>\n\u003Cli>Optionally optimize the DB tables as well; this is your solution for when the size of the tables doesn’t seem to go down on simple clearing\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>For best results, we recommend setting up an automatic clearing schedule to maintain optimal database performance. Something like 7 days is usually sufficient. By default, Action Scheduler does this every 30 days, but only for completed and canceled actions, whereas you can control this aspect in the plugin. On deactivation of the plugin, the 30-day retention period as well as which actions get cleared will reset to their defaults.\u003C\u002Fp>\n\u003Ch3>Developer Information\u003C\u002Fh3>\n\u003Cp>Author: Winning Solutions\u003Cbr \u002F>\nAuthor URI: \u003Ca href=\"https:\u002F\u002Fwww.winning-solutions.de\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.winning-solutions.de\u003C\u002Fa>\u003C\u002Fp>\n","Optimize your WordPress database by efficiently managing the Action Scheduler tables used by popular plugins like WooCommerce.",2000,7921,100,4,"2025-12-11T17:10:00.000Z","6.9.4","6.2","7.4",[],"","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fws-action-scheduler-cleaner.1.2.5.zip",0,null,"2026-03-15T15:16:48.613Z",[],{"slug":27,"display_name":7,"profile_url":8,"plugin_count":28,"total_installs":29,"avg_security_score":13,"avg_patch_time_days":30,"trust_score":31,"computed_at":32},"winningsolutions",2,2010,30,94,"2026-04-04T14:03:20.385Z",[],{"attackSurface":35,"codeSignals":135,"taintFlows":163,"riskAssessment":220,"analyzedAt":223},{"hooks":36,"ajaxHandlers":99,"restRoutes":131,"shortcodes":132,"cronEvents":133,"entryPointCount":134,"unprotectedCount":22},[37,44,49,53,58,62,66,70,73,76,78,83,87,91,95],{"type":38,"name":39,"callback":40,"priority":41,"file":42,"line":43},"filter","load_textdomain_mofile","load_translations_locally",10,"includes\\class-admin.php",25,{"type":45,"name":46,"callback":47,"file":42,"line":48},"action","admin_menu","menu",26,{"type":45,"name":50,"callback":51,"file":42,"line":52},"admin_enqueue_scripts","assets",27,{"type":45,"name":54,"callback":55,"file":56,"line":57},"wsacsc_cleanup_logs","cleanup_logs","includes\\class-cleanup.php",80,{"type":45,"name":59,"callback":60,"file":56,"line":61},"wsacsc_cleanup_actions","cleanup_actions",84,{"type":38,"name":63,"callback":64,"file":65,"line":48},"cron_schedules","add_custom_cron_intervals","includes\\class-scheduler.php",{"type":45,"name":67,"callback":68,"priority":69,"file":65,"line":52},"plugins_loaded","maybe_schedule_cleanup",20,{"type":45,"name":71,"callback":68,"priority":69,"file":65,"line":72},"init",28,{"type":45,"name":74,"callback":68,"file":65,"line":75},"admin_init",29,{"type":45,"name":74,"callback":77,"priority":30,"file":65,"line":30},"verify_cron_health",{"type":38,"name":79,"callback":80,"file":81,"line":82},"action_scheduler_cleanup_batch_size","wsacsc_increase_cleanup_batch_size","includes\\filters.php",16,{"type":38,"name":84,"callback":85,"file":81,"line":86},"action_scheduler_queue_runner_time_limit","wsacsc_increase_queue_runner_time_limit",17,{"type":38,"name":88,"callback":89,"file":81,"line":90},"action_scheduler_retention_period","wsacsc_change_retention_period",18,{"type":38,"name":92,"callback":93,"file":81,"line":94},"action_scheduler_default_cleaner_statuses","wsacsc_set_cleaner_statuses",19,{"type":45,"name":74,"callback":96,"file":97,"line":98},"migrate_existing_settings","ws-action-scheduler-cleaner.php",42,[100,107,111,115,119,122,125,128],{"action":101,"nopriv":102,"callback":103,"hasNonce":104,"hasCapCheck":104,"file":105,"line":106},"wsacsc_get_table_sizes",false,"get_table_sizes",true,"includes\\class-ajax.php",21,{"action":108,"nopriv":102,"callback":109,"hasNonce":104,"hasCapCheck":104,"file":105,"line":110},"wsacsc_clear_actions","clear_actions",22,{"action":112,"nopriv":102,"callback":113,"hasNonce":104,"hasCapCheck":104,"file":105,"line":114},"wsacsc_clear_logs","clear_logs",23,{"action":116,"nopriv":102,"callback":117,"hasNonce":104,"hasCapCheck":104,"file":105,"line":118},"wsacsc_save_schedule","save_schedule",24,{"action":120,"nopriv":102,"callback":121,"hasNonce":104,"hasCapCheck":104,"file":105,"line":43},"wsacsc_save_selected_statuses","save_selected_statuses",{"action":123,"nopriv":102,"callback":124,"hasNonce":104,"hasCapCheck":104,"file":105,"line":48},"wsacsc_get_single_table_size","get_single_table_size",{"action":126,"nopriv":102,"callback":127,"hasNonce":104,"hasCapCheck":104,"file":105,"line":52},"wsacsc_optimize_table","optimize_table",{"action":129,"nopriv":102,"callback":130,"hasNonce":104,"hasCapCheck":104,"file":105,"line":72},"wsacsc_check_cleanup_progress","check_cleanup_progress",[],[],[],8,{"dangerousFunctions":136,"sqlUsage":137,"outputEscaping":154,"fileOperations":22,"externalRequests":22,"nonceChecks":134,"capabilityChecks":161,"bundledLibraries":162},[],{"prepared":72,"raw":138,"locations":139},6,[140,144,146,148,150,152],{"file":141,"line":142,"context":143},"includes\\class-activation.php",75,"$wpdb->query() with variable interpolation",{"file":141,"line":145,"context":143},77,{"file":56,"line":147,"context":143},114,{"file":56,"line":149,"context":143},153,{"file":151,"line":30,"context":143},"uninstall.php",{"file":151,"line":153,"context":143},32,{"escaped":30,"rawEcho":28,"locations":155},[156,159],{"file":42,"line":157,"context":158},127,"raw output",{"file":42,"line":160,"context":158},128,9,[],[164,182,193,206],{"entryPoint":165,"graph":166,"unsanitizedCount":22,"severity":181},"save_schedule (includes\\class-ajax.php:155)",{"nodes":167,"edges":179},[168,173],{"id":169,"type":170,"label":171,"file":105,"line":172},"n0","source","$_POST (x6)",164,{"id":174,"type":175,"label":176,"file":105,"line":177,"wp_function":178},"n1","sink","update_option() [Settings Manipulation]",228,"update_option",[180],{"from":169,"to":174,"sanitized":104},"low",{"entryPoint":183,"graph":184,"unsanitizedCount":22,"severity":181},"save_selected_statuses (includes\\class-ajax.php:306)",{"nodes":185,"edges":191},[186,189],{"id":169,"type":170,"label":187,"file":105,"line":188},"$_POST",314,{"id":174,"type":175,"label":176,"file":105,"line":190,"wp_function":178},316,[192],{"from":169,"to":174,"sanitized":104},{"entryPoint":194,"graph":195,"unsanitizedCount":22,"severity":181},"get_single_table_size (includes\\class-ajax.php:327)",{"nodes":196,"edges":204},[197,200],{"id":169,"type":170,"label":198,"file":105,"line":199},"$_POST (x2)",337,{"id":174,"type":175,"label":201,"file":105,"line":202,"wp_function":203},"get_var() [SQLi]",347,"get_var",[205],{"from":169,"to":174,"sanitized":104},{"entryPoint":207,"graph":208,"unsanitizedCount":22,"severity":181},"\u003Cclass-ajax> (includes\\class-ajax.php:0)",{"nodes":209,"edges":217},[210,212,213,215],{"id":169,"type":170,"label":211,"file":105,"line":172},"$_POST (x7)",{"id":174,"type":175,"label":176,"file":105,"line":177,"wp_function":178},{"id":214,"type":170,"label":198,"file":105,"line":199},"n2",{"id":216,"type":175,"label":201,"file":105,"line":202,"wp_function":203},"n3",[218,219],{"from":169,"to":174,"sanitized":104},{"from":214,"to":216,"sanitized":104},{"summary":221,"deductions":222},"The \"ws-action-scheduler-cleaner\" plugin, version 1.2.5, exhibits a generally strong security posture based on the provided static analysis and vulnerability history. The plugin demonstrates good practices by implementing nonce checks and capability checks on all identified AJAX entry points, and it avoids dangerous functions and external HTTP requests. The extensive use of prepared statements for SQL queries (82%) and proper output escaping (94%) further mitigates common attack vectors. Taint analysis shows no flows with unsanitized paths, indicating a low risk of code injection or cross-site scripting vulnerabilities originating from the analyzed code paths.  The complete absence of known CVEs and a clean vulnerability history suggest a history of secure development and maintenance. However, with 8 AJAX handlers as the entire attack surface, vigilance is still important. While all entry points appear to have checks, a thorough manual review of the implementation of these checks and the SQL queries themselves is always recommended for complete assurance.",[],"2026-03-16T18:37:57.731Z",{"wat":225,"direct":234},{"assetPaths":226,"generatorPatterns":229,"scriptPaths":230,"versionParams":231},[227,228],"\u002Fwp-content\u002Fplugins\u002Fws-action-scheduler-cleaner\u002Fassets\u002Fcss\u002Fws-as-cleaner.css","\u002Fwp-content\u002Fplugins\u002Fws-action-scheduler-cleaner\u002Fassets\u002Fjs\u002Fws-as-cleaner.js",[],[228],[232,233],"\u002Fwp-content\u002Fplugins\u002Fws-action-scheduler-cleaner\u002Fassets\u002Fjs\u002Fws-as-cleaner.js?ver=1.4","\u002Fwp-content\u002Fplugins\u002Fws-action-scheduler-cleaner\u002Fassets\u002Fcss\u002Fws-as-cleaner.css?ver=1.4",{"cssClasses":235,"htmlComments":239,"htmlAttributes":240,"restEndpoints":242,"jsGlobals":243,"shortcodeOutput":244},[236,237,238],"wsacsc-cleaner","wsacsc-message","wsacsc-info",[],[241],"wsacsc_cleaner",[],[241],[]]