PluginProbe ʕ •ᴥ•ʔ
Easy Actions Scheduler Cleaner / 1.3.0
Easy Actions Scheduler Cleaner v1.3.0
trunk 1.0.0 1.0.1 1.0.2 1.1.0 1.2.0 1.2.1 1.2.2 1.2.3 1.3.0
easy-actions-scheduler-cleaner-ayudawp / readme.txt
easy-actions-scheduler-cleaner-ayudawp Last commit date
assets 3 weeks ago includes 3 weeks ago changelog.txt 3 weeks ago easy-actions-scheduler-cleaner-ayudawp.php 3 weeks ago readme.txt 2 weeks ago uninstall.php 3 weeks ago
readme.txt
223 lines
1 === Easy Actions Scheduler Cleaner ===
2 Contributors: fernandot, ayudawp
3 Tags: actions scheduler, database, cleanup, performance, woocommerce
4 Requires at least: 5.0
5 Tested up to: 7.0
6 Requires PHP: 7.4
7 Stable tag: 1.3.0
8 License: GPL v2 or later
9 License URI: https://www.gnu.org/licenses/gpl-2.0.html
10
11 Clean up your Actions Scheduler database with manual or scheduled cleanup. Remove old actions and logs automatically.
12
13 == Description ==
14
15 **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.
16
17 This plugin provides two cleanup modes plus email notifications:
18
19 = Manual cleanup =
20
21 Run a one-time cleanup that removes all unnecessary records at once:
22
23 * **Delete completed actions** - Actions that have already been executed successfully
24 * **Delete failed actions** - Actions that encountered errors during execution
25 * **Delete canceled actions** - Actions that were manually canceled
26 * **Delete past-due actions** - Actions that missed their scheduled execution time
27 * **Delete old pending actions** - Pending actions older than 30 days
28 * **Delete action logs** - Historical log records that accumulate over time
29
30 = Scheduled cleanup =
31
32 Configure automatic cleanup to run on a schedule with smart thresholds:
33
34 * **Flexible frequency** - Daily, weekly, biweekly, or monthly
35 * **Per-type configuration** - Enable/disable cleanup for each action type independently
36 * **Threshold system** - Only clean when records exceed your configured minimum (e.g., clean completed actions only when there are more than 100)
37 * **Configurable pending age** - Set custom age for old pending actions (7 to 365 days)
38 * **Last run reporting** - See results from the last scheduled cleanup
39 * **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
40
41 = Email notifications =
42
43 Stay informed about your database status with configurable email notifications:
44
45 * **Periodic reports** - Receive daily, weekly, or monthly reports with database status, cleanup results, and estimated space savings
46 * **Accumulation alerts** - Get notified when records pile up without an active scheduled cleanup
47 * **Missed cleanup alerts** - Detect when WP-Cron fails to execute a scheduled cleanup
48 * **Separate recipient lists** - Configure different email addresses for management reports and technical alerts
49 * **HTML formatted emails** - Clean, readable email reports
50 * **Test emails** - Send test report or alert emails directly from the settings page to verify delivery
51
52 = Key features =
53
54 * **Two cleanup modes** - Manual one-time cleanup or scheduled automatic cleanup
55 * **Smart thresholds** - Scheduled cleanup only runs when record counts justify it
56 * **Database space estimation** - See how much space your Action Scheduler tables are using
57 * **Email notifications** - Periodic reports, accumulation alerts, and missed cleanup warnings
58 * **Batch processing** - Handles large datasets efficiently (10,000 records per batch)
59 * **Detailed reporting** - Shows exactly how many records were deleted by type and estimated space freed
60 * **Orphaned data cleanup** - Also removes related orphaned groups
61 * **Complete logs cleanup** - Removes all action logs that accumulate over time
62 * **WooCommerce integration** - Seamlessly works with WooCommerce's Action Scheduler
63
64 = Why use this plugin? =
65
66 The Actions Scheduler tool used by WooCommerce and many other WordPress plugins can accumulate millions of database records over time, which can:
67
68 * Slow down your website performance
69 * Increase database size unnecessarily
70 * Make database backups larger and slower
71 * Impact Actions Scheduler's own performance
72
73 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.
74
75 = Important notes =
76
77 * **Cleanup is irreversible** - Always backup your database before use
78 * **Scheduled cleanup respects thresholds** - Only cleans when record counts exceed your minimums
79 * **You choose the mode** - Use manual for one-time cleanup or scheduled for ongoing maintenance
80
81 = Perfect for =
82
83 * E-commerce sites with large Action Scheduler tables
84 * Sites with millions of action log records
85 * Database maintenance and optimization
86 * Before major WooCommerce updates
87 * Preparing for site migrations
88 * Regular automated maintenance
89
90 == Installation ==
91
92 1. Upload the plugin files to the `/wp-content/plugins/easy-actions-scheduler-cleaner-ayudawp` directory, or install the plugin through the WordPress plugins screen directly.
93 2. Activate the plugin through the 'Plugins' screen in WordPress.
94 3. The plugin will automatically redirect you to Tools > Actions Cleaner.
95 4. Choose between manual cleanup, scheduled cleanup, or notifications tabs.
96 5. For manual: Review the information and click "Run Manual Cleanup".
97 6. For scheduled: Enable scheduled cleanup, configure frequency and thresholds, and save.
98 7. For notifications: Enable periodic reports and/or technical alerts to stay informed.
99
100 == Frequently Asked Questions ==
101
102 = Is this safe to use? =
103
104 Yes, but like any database operation, you should always backup your database first. The plugin only removes historical records that are no longer needed.
105
106 = Will this break my WooCommerce store? =
107
108 No. The plugin only removes completed, failed, canceled, past-due, and old pending actions, plus action logs. It preserves all active and recent pending actions that WooCommerce still needs.
109
110 = How does scheduled cleanup work? =
111
112 Scheduled cleanup uses WP-Cron to run at your chosen frequency (daily, weekly, biweekly, or monthly). Each action type has a threshold: cleanup only happens when the record count exceeds that minimum. For example, if you set completed actions threshold to 100, they will only be cleaned when there are 100 or more completed actions.
113
114 = What are thresholds? =
115
116 Thresholds prevent unnecessary cleanup runs. If your site only has 20 completed actions and the threshold is 100, those 20 records will be left alone until they accumulate past the threshold. This is especially useful for low-traffic sites.
117
118 = How do email notifications work? =
119
120 You can configure three types of notifications: periodic reports (daily/weekly/monthly summaries), accumulation alerts (when records pile up without scheduled cleanup), and missed cleanup alerts (when WP-Cron fails). Report emails and alert emails can be sent to different recipients. You can also send test emails from the settings page to verify everything is working correctly.
121
122 = Can I send reports and alerts to different people? =
123
124 Yes. The Notifications tab has separate recipient fields for management reports and technical alerts. By default both use the site admin email, but you can customize each independently.
125
126 = Can I use both manual and scheduled cleanup? =
127
128 Yes. You can run a manual cleanup first to clear everything, then enable scheduled cleanup to keep things clean going forward.
129
130 = Can I undo the cleanup? =
131
132 No, cleanup is irreversible. That's why we strongly recommend creating a database backup before using it.
133
134 = Will deleting action logs affect my store? =
135
136 No. Action logs are purely historical records used for debugging and monitoring. Deleting them does not affect store functionality but can significantly reduce database size.
137
138 = How is database space estimated? =
139
140 The plugin queries MySQL's `information_schema.tables` to get the actual disk usage (data + indexes) of the Action Scheduler tables. The "space freed" value compares table sizes before and after cleanup.
141
142 = Does this work with Actions Scheduler Pro plugin? =
143
144 This plugin works with the standard Action Scheduler that comes with WooCommerce and many other WordPress plugins. Compatibility with Action Scheduler Pro plugin has not been tested.
145
146 == Screenshots ==
147
148 1. Manual cleanup tab with database status and space estimation
149 2. Scheduled cleanup tab with frequency and threshold configuration
150 3. Notifications tab with report and alert settings
151 4. Cleanup results with estimated space freed
152
153 == Changelog ==
154
155 = 1.3.0 =
156 * New: Background processing for scheduled cleanup - runs as a self-rescheduling Action Scheduler job, so it never times out on sites with millions of records
157 * New: Time-budgeted batches (default 25s per step, filterable via `easc_cleanup_step_time_budget`) prevent PHP execution timeouts on large tables
158 * New: `easc_batch_size` filter for developers who need to tune batch size per context
159 * New: Smart admin notice for large sites without scheduled cleanup - suggests enabling it when more than 500.000 records are detected (threshold filterable via `easc_large_site_threshold`)
160 * Improved: More recommended plugins in settings page
161 * Improved: Synchronous fallback path is preserved when Action Scheduler hooks are not available
162
163 For older changelog entries, please check the [changelog.txt](https://plugins.svn.wordpress.org/easy-actions-scheduler-cleaner-ayudawp/trunk/changelog.txt) file
164
165 == Upgrade Notice ==
166
167 = 1.3.0 =
168 Scheduled cleanup now runs in the background using Action Scheduler itself, fixing missed-cleanup alerts on sites with millions of records. Plus a smart notice that recommends enabling the scheduled cleanup when your site needs it.
169
170 == Privacy Policy ==
171
172 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.
173
174 == Technical Details ==
175
176 = Minimum requirements =
177 * WordPress 5.0 or higher
178 * WooCommerce 3.0 or higher (optional)
179 * PHP 7.4 or higher
180 * MySQL 5.6 or MariaDB 10.1
181
182 = Database tables affected =
183 * `wp_actionscheduler_actions` - Main actions table
184 * `wp_actionscheduler_groups` - Groups table (orphaned records only)
185 * `wp_actionscheduler_logs` - Logs table (all records)
186
187 = Batch processing =
188 The plugin processes deletions in batches of 10,000 records to prevent timeouts and reduce server load during cleanup operations.
189
190 = WP-Cron =
191 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.
192
193 = For developers =
194
195 The plugin exposes three filters for fine-tuning the cleanup behavior. Add them to a mu-plugin or your theme's functions.php:
196
197 `easc_large_site_threshold` (default: 500000)
198 Number of total records (actions + logs) that triggers the "consider enabling scheduled cleanup" admin notice.
199
200 `easc_batch_size` (default: 10000, context: 'scheduled')
201 Rows deleted per DELETE LIMIT query. Lower if your database struggles, raise if you have headroom. Currently applies to the scheduled cleanup only.
202
203 `easc_cleanup_step_time_budget` (default: 25)
204 Seconds each background step is allowed to run before rescheduling itself. Should be lower than your hosting's PHP max_execution_time.
205
206 Example:
207
208 add_filter( 'easc_large_site_threshold', fn() => 100000 );
209
210 == Support ==
211
212 = Need help or have suggestions? =
213 * [Official website](https://servicios.ayudawp.com/)
214 * [WordPress support forum](https://wordpress.org/support/plugin/easy-actions-scheduler-cleaner-ayudawp/)
215 * [YouTube channel](https://www.youtube.com/AyudaWordPressES)
216 * [Documentation and tutorials](https://ayudawp.com/)
217
218 **Love the plugin?** Please leave us a 5-star review and help spread the word!
219
220 == About AyudaWP ==
221
222 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.
223