Easy Actions Scheduler Cleaner
Easy Actions Scheduler Cleaner helps you clean up your Actions Scheduler database tables. Over time, these tables can accumulate thousands or even millions of records from completed, failed, canceled, and past-due actions that are no longer needed, as well as extensive logs that can take up significant database space. This plugin provides two cleanup modes plus email notifications: Manual cleanup Run a one-time cleanup that removes all unnecessary records at once: Delete completed actions – Actions that have already been executed successfully Delete failed actions – Actions that encountered errors during execution Delete canceled actions – Actions that were manually canceled Delete past-due actions – Actions that missed their scheduled execution time Delete old pending actions – Pending actions older than 30 days Delete action logs – Historical log records that accumulate over time Scheduled cleanup Configure automatic cleanup to run on a schedule with smart thresholds: Flexible frequency – Daily, weekly, biweekly, or monthly Per-type configuration – Enable/disable cleanup for each action type independently Threshold system – Only clean when records exceed your configured minimum (e.g., clean completed actions only when there are more than 100) Configurable pending age – Set custom age for old pending actions (7 to 365 days) Last run reporting – See results from the last scheduled cleanup Background processing (NEW in 1.3) – The scheduled cleanup now runs as a self-rescheduling Action Scheduler job, so it never times out on large sites with millions of records Email notifications Stay informed about your database status with configurable email notifications: Periodic reports – Receive daily, weekly, or monthly reports with database status, cleanup results, and estimated space savings Accumulation alerts – Get notified when records pile up without an active scheduled cleanup Missed cleanup alerts – Detect when WP-Cron fails to execute a scheduled cleanup Separate recipient lists – Configure different email addresses for management reports and technical alerts HTML formatted emails – Clean, readable email reports Test emails – Send test report or alert emails directly from the settings page to verify delivery Key features Two cleanup modes – Manual one-time cleanup or scheduled automatic cleanup Smart thresholds – Scheduled cleanup only runs when record counts justify it Database space estimation – See how much space your Action Scheduler tables are using Email notifications – Periodic reports, accumulation alerts, and missed cleanup warnings Batch processing – Handles large datasets efficiently (10,000 records per batch) Detailed reporting – Shows exactly how many records were deleted by type and estimated space freed Orphaned data cleanup – Also removes related orphaned groups Complete logs cleanup – Removes all action logs that accumulate over time WooCommerce integration – Seamlessly works with WooCommerce’s Action Scheduler Why use this plugin? The Actions Scheduler tool used by WooCommerce and many other WordPress plugins can accumulate millions of database records over time, which can: Slow down your website performance Increase database size unnecessarily Make database backups larger and slower Impact Actions Scheduler’s own performance The action logs table (actionscheduler_logs) is particularly problematic as it records detailed information about every action execution and can grow exponentially on busy sites. Works with Action Scheduler 4.0 and WooCommerce 11.0 Action Scheduler 4.0 (bundled with WooCommerce 11.0) now removes failed actions automatically after three months, on top of the completed-action cleanup it already did. This plugin still does more, and on your terms: it cleans on demand and immediately, and it also clears past-due actions, old pending actions, every action log, and orphaned groups that Action Scheduler leaves behind. Important notes Cleanup is irreversible – Always backup your database before use Scheduled cleanup respects thresholds – Only cleans when record counts exceed your minimums You choose the mode – Use manual for one-time cleanup or scheduled for ongoing maintenance Perfect for E-commerce sites with large Action Scheduler tables Sites with millions of action log records Database maintenance and optimization Before major WooCommerce updates Preparing for site migrations Regular automated maintenance Privacy Policy This plugin does not collect, store, or transmit any user data externally. Email notifications are sent using WordPress’s built-in wp_mail() function through your server’s mail configuration. All data processing happens locally on your server. Technical Details Minimum requirements WordPress 6.0 or higher WooCommerce 3.0 or higher (optional) PHP 7.4 or higher MySQL 5.6 or MariaDB 10.1 Database tables affected wp_actionscheduler_actions – Main actions table wp_actionscheduler_groups – Groups table (orphaned records only) wp_actionscheduler_logs – Logs table (all records) Batch processing The plugin processes deletions in batches of 10,000 records to prevent timeouts and reduce server load during cleanup operations. WP-Cron Scheduled cleanup and email notifications rely on WP-Cron. If your site uses an external cron job (DISABLE_WP_CRON), make sure your system cron is properly configured to trigger WP-Cron. The missed cleanup alert can help detect WP-Cron issues. For developers The plugin exposes three filters for fine-tuning the cleanup behavior. Add them to a mu-plugin or your theme’s functions.php: easc_large_site_threshold (default: 500000) Number of total records (actions + logs) that triggers the “consider enabling scheduled cleanup” admin notice. easc_batch_size (default: 10000, context: 'scheduled') Rows deleted per DELETE LIMIT query. Lower if your database struggles, raise if you have headroom. Currently applies to the scheduled cleanup only. easc_cleanup_step_time_budget (default: 25) Seconds each background step is allowed to run before rescheduling itself. Should be lower than your hosting’s PHP max_execution_time. Example: add_filter( 'easc_large_site_threshold', fn() => 100000 ); Support Need private support or custom development? Do you need one-on-one help, priority troubleshooting, or a custom feature, integration, or tweak built specifically for your site? I offer private support and custom development. Just contact me and tell me what you need. Need help or have suggestions? Official website WordPress support forum YouTube channel Documentation and tutorials Love the plugin? Please leave us a 5-star review and help spread the word! About AyudaWP We are specialists in WordPress security, SEO, and performance optimization plugins. We create tools that solve real problems for WordPress site owners while maintaining the highest coding standards and accessibility requirements.
Top keywords
- cleanup30×2.99%
- actions23×2.30%
- records15×1.50%
- action14×1.40%
- scheduled13×1.30%
- database12×1.20%
- scheduler11×1.10%
- scheduled cleanup10×1.00%
- logs9×0.90%
- email8×0.80%
- action scheduler7×0.70%
- delete7×0.70%
Simple Revisions Delete
Delete the revisions of your posts individually or all at once, either from the editor or through a bulk action. Works with both the block editor and the classic editor. What does it do? Simple Revisions Delete adds a discreet purge control next to the revisions counter of the post you are editing. One click and the revisions of that post are gone. It helps you keep a clean database by removing unnecessary post revisions. Unlike most similar plugins, it lets you delete the revisions of a specific post rather than wiping every revision of your site at once. The plugin blends into the WordPress admin, relies exclusively on core functions to delete revisions safely, and adds no settings page: there is nothing to configure. How does it work? In the block editor, a “Purge” button sits in the post status panel of the sidebar, right below the publishing options. It tells you how many revisions the post has and deletes them all in one request. In the classic editor, the same control appears in the Publish metabox, and each revision listed in the Revisions metabox gets its own “Delete” button. In the posts and pages list, a “Purge revisions” bulk action lets you clean up several posts at once. Everything happens through the WordPress REST API, so no page reload is needed. Without JavaScript, the classic editor control falls back to a regular form submission and the bulk action keeps working. What’s new in 2.0? The block editor integration has been rewritten from scratch. The previous version relied on jQuery and on the internal markup of the editor, which stopped working when Gutenberg 7.1 reorganised its DOM. The purge control is now a genuine editor plugin (PluginPostStatusInfo) reading and writing through a dedicated REST API, so it no longer depends on class names that can change at any release. The rest of the plugin has been rewritten too: one class per responsibility, no more inline and blocks, destructive actions moved off GET requests, native bulk action filters instead of injected jQuery, and an interface that works with a keyboard and a screen reader. See the plugin page NOTE: this plugin has no settings page, and needs none. Post type support The supported post types are post and page by default. Use the wpsrd_post_types_list filter to add your own or to remove the defaults: function bweb_wpsrd_add_post_types( $post_types ) { $post_types[] = 'additional-cpt'; $post_types[] = 'another-cpt'; return $post_types; } add_filter( 'wpsrd_post_types_list', 'bweb_wpsrd_add_post_types' ); Use get_post_types() if you want to support every custom post type at once. Custom user capability The capability required to delete revisions is delete_post. Override it with the wpsrd_capability filter: function bweb_wpsrd_capability() { return 'edit_post'; } add_filter( 'wpsrd_capability', 'bweb_wpsrd_capability' ); REST API The plugin registers three routes under the wpsrd/v1 namespace. All of them check that the post type is supported and that the current user holds the capability above for the requested post: GET /wpsrd/v1/posts/ /revisions — returns the number of revisions DELETE /wpsrd/v1/posts/ /revisions — deletes every revision of the post DELETE /wpsrd/v1/posts/ /revisions/ — deletes a single revision Each response returns the number of deleted revisions and the number of revisions left. Languages The plugin only holds a handful of sentences, easy to translate through its .po and .mo files. Available languages: English French German — thanks to mallard66 Dutch — thanks to jondor Want to add yours? Get in touch CHECK OUT MY OTHER PLUGINS Please ask for help or report bugs if anything goes wrong. It is the best way to make the whole community benefit from it!