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 5.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%
WPC Product Timer for WooCommerce
WPC Product Timer for WooCommerce is an all-in-one powerful tool for setting time-based conditions when it comes to managing products’ prices and availability. This is the only simple plugin for dealing with complex tasks that involve setting the time and date of implementation. As a strongly versatile timer, WPC Product Timer lets users take full control of when the products go on sale, be visible and purchasable using a wide range of time conditionals and actions available for choice. WPC Product Timer makes product management an effortless task and reduces a great amount of workload for shop owners on sale seasons & busy times. Document HOT! Get the basics of timers-setting and typical examples from the complete Online Documentation here. As WPC Product Timer mostly works in the back-end, if you’d like a front-end solution, try our new plugin WPC Countdown Timer for increasing the conversion rate and level up the appearance of your store with a beautiful timer. How to set up timers on a single product page Features Simple, intuitive & user-friendly admin interface Complete time conditionals: on a timely basis, recurring period, or an exact date & time Up to 15 date and time conditionals which can be combined for more complex ones Choose the time and date from the visual calendar Allow complicated time & date combination in time conditionals Allow setting separate time & date range and using them simultaneously Adjust the product’s visibility: set products as visible or hidden Adjust product listings: set featured or unfeatured Adjust the stock condition: set products as in stock or out of stock Adjust the availability: set products as purchasable or unpurchasable Adjust the time range for sale & regular prices Enable/disable sold individually Compatible with all WordPress themes, WPC & WooCommerce plugins Premium: Add multiple actions to a product. It’s unlimited. Premium: Lifetime update & fast, dedicated support. Global Timer is Now Available To save time, now you can add timers throughout your store or a whole range of products at ease with the Global Timer from the plugin setting. Control more at once. From the admin dashboard, go to WPClever >> Product Timer >> click on the Global Timer tab. Here you will choose all the actions and timers you would use for all products, selected categories, or certain products specified with selected product tags. Practical Use of WPC Product Timer for WooCommerce Consider the following cases anyone might encounter when it comes to managing your shop: (1) A new item will be opened for sale in your shop on the next Monday. (2) You will stop selling an old-fashioned product starting from this weekend. (3) You will be running a sale event for one week starting from the first day of the next month. (4) You want to hide some products from search at certain times of the day. (5) Some products from your store are seasonal, so they’re purchasable at certain periods of time only. (6) You have items that are temporarily unsellable, but you still want to keep them visible to your customers. (7) Your shop sells Christmas decorative ornaments from December 1st to December 24th every day from 7:00 to 21:00. (8) Your restaurant serves breakfast before 9 A.M. and desserts after 8 P.M. only. (9) You’d like to run festive sale campaigns on holidays, i.e., on New Year’s Day, Independence Day, Labor Day, Thanksgiving, and Christmas Day. (10) Your shop has recurring flash sales every Monday to keep buyers motivated to shop more often & get a fast turnover of stock. (11) You sell alternating items on odd days and even days of the month. (12) You have a need to hide your newly arrived product for stock checks from July 3rd to July 31st, then put it on sale at $29 for a week to promote sales upon product launch and change it back to its regular price at $39 from 8:00 August 15th. An All-in-One Timer for Product Management This is not only a timer, but it’s also the most usable plugin for setting any time-based task no matter how complicated it might be. As long as the defined time conditionals do not conflict, users are entitled to add unlimited actions (featured in the Premium version only) despite the type of chosen actions. Stock Condition: As in (1) & (2), it’s easy for sellers to change the stock condition of a product from in stock to out of stock and vice versa using various time conditionals. This will be useful for updating stock conditions in products that have fast turnover and restocking. Products’ Visibility: In (4), users can set the product as hidden to prevent it from appearing in the product search on the shop page. However, if customers have the exact link of the single product page, then they can still access and add it to the cart from there. On the other hand, users can also enable the product’s visibility at other defined times. Products’ Availability: To completely stop your customers from buying specific items, users will need to combine two actions: setting those items as hidden and unpurchasable. This will ensure that they’re not available for sale but can still be seen from the exact product link as in (6). Products’ Prices: It’s totally possible for shop owners to set sale prices or change the prices back to the regular using any kind of time conditions. Remarkably, retailers can even plan ahead their promotional schedule for the whole year or every year using the recurring time conditions. Complete Time Conditionals for Use We can proudly claim that our plugin is the best one concerning the time conditional settings. WPC Product Timer has the ability to define all kinds of deadlines for the actions including both time (time point, consecutive and separate time periods) and date (exact dates, recurring dates, date range, separate dates, odd/ even dates, weekly on specific dates). Besides, the plugin displays the current date and time as well so that users can define the deadlines faster for actions. When it comes to choosing a date or time point, you can do it by selecting from the calendar or entering the correctly formatted numbers in the box. On an exact date: as in (1) Set a date range: as in (3), (7) Multiple dates: as in (9) & (5), users can add up to 5 separate dates. Before/ after a date: as in (2) Before/after date & time: (7) On even/ odd dates: as in (11) Daily time range: as in (4) Daily before /after time: as in (8) Weekly on every specific date (10) Week No. Month No. Everyday One special example of setting complex timeframes for your product is (12). This case requires adding 3 actions with 3 different kinds of time conditions. To be specific, you should add in this order: 1. Set hidden, date range: July 3rd – July 31st, 2. Set sale price – $29, date range: August 3rd – August 10th (assuming product launched on August 3rd), 3. Set regular price, after date & time: August 15th – 8:00. Adding actions in order is just necessary for users to check on every phase of their launch schedule, in fact, the order doesn’t affect the result. You can add actions in any order that you like as long as time conditions make sense. Achievable Goals Set sale price Set regular price Set featured Set unfeatured Set unpurchasable Set out of stock Set hidden Enable Sold Individually Disable Sold Individually These actions can work alone or combine with others if the time conditions are properly chosen. With other complicated goals, at least 2 actions are needed to complete. Time Conditionals Each action only carries 1 DATE & 1 TIME part at maximum. All the chosen conditionals must be unifying and meaningful. The relationship between conditionals in each action is the AND type, not OR type, so you must set the date and time that make sense and can be satisfied. Incorrect: Weekly on every Thursday, Friday >> Correct: These are two date parts (2 weekdays, must separate them into 2 actions: [Action 1] Weekly on every Thursday, [Action 2] Weekly on every Friday. Incorrect: Daily time range: 6 AM-6 PM, 8 PM-10 PM >> Correct: These are two time ranges, must separate them into 2 actions: [Action 1] Daily time range: 6 AM-6 PM, [Action 2] Daily time range: 8 PM-10 PM. Correct: Weekly on every Monday, Daily time range: 6 AM-6 PM >> This is achievable, which means “from 6 AM to 6 PM (time part) of every Monday of each week (date part)” Correct: On odd dates, Weekly on every Monday >> This is achievable and applicable to any day that satisfies BOTH conditions: “24 hours of all odd dates that are Mondays of the week”. Correct: Date range: 01-31 March, Weekly on Every Monday, Daily after time: 5 PM >> This is achievable and applicable to any day that satisfies all conditions, which means “after 5 PM of all Mondays in March.” There are even more achievable complex date and time combinations with WPC Product Timers as long as you can create meaningful conditionals that are satisfiable with the “AND” relationship among them. Learn more at the Online Documentation. User-friendly & Easy-to-Use Interface Being able to tackle even the most complicated series of actions with complex user-defined timeframes, however, WPC Product Timer has a truly intuitive admin interface. There’s no need for users to configure any settings as everything is built-in and ready to use already. Users can start using this plugin right away without the need to go through the documentation. All functions are straight-forward even to beginners.