woocommerce/action-scheduler
Action Scheduler for WordPress and WooCommerce
4.1.0
8.2M downloads/mo
#1269 most downloaded on Packagist
woocommerce/action-scheduler
What this package is like to depend on
Last release 18 days ago
05 Aug 2026
Release timing varies
gaps range from 2 weeks to 11 months
Most releases are documented
notes for 31 of 49 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
58 releases · first in 2017
2 releases in the last 12 months
see the full history below
Release timeline
58 releases · May 2017 to Aug 2026Releases
latest 58-
4.1.005 Aug 2026Release notes
Open source →- Fix - Correct an oversight in the lock implementation (used to rate-limit async request runners) that could leave a lock permanently stuck and result in database errors in unusual cases.
- Fix - Correct the behavior of the
wp action-scheduler cleancommand so that the--beforeoption defaults to 31 days ago. - Performance - Reduce the number of SQL queries on the Action Scheduler admin page.
- Performance - Cache resolved group IDs to reduce the number of SQL queries.
- Performance - Use the WordPress caching layer for the option lock component.
- Enhancement - Display action IDs in the admin list and allow searching by action ID.
- Enhancement - Use
wp_admin_notice()to render admin notices, instead of custom HTML. - Security - Add protections to guard against the risk of object-injection/deserialization attacks when retrieving stored schedule data.
- Dev - Include the underlying database error in the exception thrown when the legacy post store fails to claim actions.
- Dev - Add filters (
action_scheduler_allowed_nested_schedule_classes,action_scheduler_enforce_schedule_allowed_classes) and an action (action_scheduler_unexpected_schedule_class) to tune and observe schedule deserialization.
Release notes
Open source →- Fix - Correct an oversight in the lock implementation (used to rate-limit async request runners) that could leave a lock permanently stuck and result in database errors in unusual cases.
- Fix - Correct the behavior of the
wp action-scheduler cleancommand so that the--beforeoption defaults to 31 days ago. - Performance - Reduce the number of SQL queries on the Action Scheduler admin page.
- Performance - Cache resolved group IDs to reduce the number of SQL queries.
- Performance - Use the WordPress caching layer for the option lock component.
- Enhancement - Display action IDs in the admin list and allow searching by action ID.
- Enhancement - Use
wp_admin_notice()to render admin notices, instead of custom HTML. - Security - Add protections to guard against the risk of object-injection/deserialization attacks when retrieving stored schedule data.
- Dev - Include the underlying database error in the exception thrown when the legacy post store fails to claim actions.
- Dev - Add filters (
action_scheduler_allowed_nested_schedule_classes,action_scheduler_enforce_schedule_allowed_classes) and an action (action_scheduler_unexpected_schedule_class) to tune and observe schedule deserialization.
-
4.0.016 Jun 2026Release notes
Open source →- Breaking change: action args are taken into account when scheduling unique actions.
- Breaking change: failed actions are now automatically purged after 3 months by default, controlled by the
action_scheduler_retention_period_for_failedfilter. - Add
action_scheduler_enable_failed_action_cleanupfilter to disable automatic cleanup of failed actions. - Performance - Actions with corrupted data are automatically cancelled on detection and their excess logs cleaned up in batches, preventing queue stalls and log table bloat.
- Performance - Action cleanup now runs as a dedicated daily task at 3 am site time with higher throughput.
- Update favicon images.
- Fix number formating for action numbers in list view.
- Import missing
WP_CLIclass to prevent fatal error. - Fix possible undefined variable in
action cancel --allCLI command. - Move recurring A-S cache key to transient.
- Optimize
get_claim_count()query for large stores. - Update
require_oncepath for Cancel_CommandFix absolute import. - Fix
esc_html()hook name in admin notice markup. - Ensure cleanup action is enqueued via queue runner.
- Bump WordPress compatibility to version 7.0 and require at least 6.8.
- Dev - Bump picomatch from 2.3.1 to 2.3.2.
- Dev - Bump phpunit/phpunit from 8.5.42 to 8.5.52.
- Dev - Bump lodash, grunt-legacy-log and grunt-legacy-util.
Release notes
Open source →- Breaking change: action args are taken into account when scheduling unique actions.
- Breaking change: failed actions are now automatically purged after 3 months by default, controlled by the
action_scheduler_retention_period_for_failedfilter. - Add
action_scheduler_enable_failed_action_cleanupfilter to disable automatic cleanup of failed actions. - Performance - Actions with corrupted data are automatically cancelled on detection and their excess logs cleaned up in batches, preventing queue stalls and log table bloat.
- Performance - Action cleanup now runs as a dedicated daily task at 3 am site time with higher throughput.
- Update favicon images.
- Fix number formating for action numbers in list view.
- Import missing
WP_CLIclass to prevent fatal error. - Fix possible undefined variable in
action cancel --allCLI command. - Move recurring A-S cache key to transient.
- Optimize
get_claim_count()query for large stores. - Update
require_oncepath for Cancel_CommandFix absolute import. - Fix
esc_html()hook name in admin notice markup. - Ensure cleanup action is enqueued via queue runner.
- Bump WordPress compatibility to version 7.0 and require at least 6.8.
- Dev - Bump picomatch from 2.3.1 to 2.3.2.
- Dev - Bump phpunit/phpunit from 8.5.42 to 8.5.52.
- Dev - Bump lodash, grunt-legacy-log and grunt-legacy-util.
-
3.9.315 Jul 2025Release notes
Open source →- Add hook 'action_scheduler_ensure_recurring_actions' specifically for scheduling recurring actions.
- Assume an action is valid until proven otherwise.
- Implement SKIP LOCKED during action claiming.
- Import
get_flag_value()fromWP_CLI\Utilsbefore using. - Make
$uniqueavailable to all pre-creation/short-circuit hooks. - Make version/source information available via new class.
- Only release claims on pending actions.
- Tweak - WP 6.8 compatibility.
- Update minimum supported php and phpunit versions.
- Update readme.txt.
- WP CLI get action command: correct parentheses/nesting of conditional checks.
Release notes
Open source →- Add hook 'action_scheduler_ensure_recurring_actions' specifically for scheduling recurring actions.
- Assume an action is valid until proven otherwise.
- Implement SKIP LOCKED during action claiming.
- Import
get_flag_value()fromWP_CLI\Utilsbefore using. - Make
$uniqueavailable to all pre-creation/short-circuit hooks. - Make version/source information available via new class.
- Only release claims on pending actions.
- Tweak - WP 6.8 compatibility.
- Update minimum supported php and phpunit versions.
- Update readme.txt.
- WP CLI get action command: correct parentheses/nesting of conditional checks.
-
3.9.203 Feb 2025Release notes
Open source →- Fixed fatal errors by moving version info methods to a new class and deprecating conflicting ones in ActionScheduler_Versions
Release notes
Open source →- Fixed fatal errors by moving version info methods to a new class and deprecating conflicting ones in ActionScheduler_Versions
-
3.9.121 Jan 2025Release notes
Open source →- A number of new WP CLI commands have been added, making it easier to manage actions in the terminal and from scripts.
- New wp action-scheduler source command to help determine how Action Scheduler is being loaded.
- Additional information about the active instance of Action Scheduler is now available in the Help pull-down drawer.
- Make some other nullable parameters explicitly nullable.
- Set option value to
norather than deleting.
Release notes
Open source →- A number of new WP CLI commands have been added, making it easier to manage actions in the terminal and from scripts.
- New wp action-scheduler source command to help determine how Action Scheduler is being loaded.
- Additional information about the active instance of Action Scheduler is now available in the Help pull-down drawer.
- Make some other nullable parameters explicitly nullable.
- Set option value to
norather than deleting.
-
3.9.015 Nov 2024Release notes
Open source →- Minimum required version of PHP is now 7.1.
- Performance improvements for the
as_pending_actions_due()function. - Existing filter hook
action_scheduler_claim_actions_order_byenhanced to provide callbacks with additional information. - Improved compatibility with PHP 8.4, specifically by making implicitly nullable parameters explicitly nullable.
- A large number of coding standards-enhancements, to help reduce friction when submitting plugins to marketplaces and plugin directories. Special props @crstauf for this effort.
- Minor documentation tweaks and improvements.
Release notes
Open source →- Minimum required version of PHP is now 7.1.
- Performance improvements for the
as_pending_actions_due()function. - Existing filter hook
action_scheduler_claim_actions_order_byenhanced to provide callbacks with additional information. - Improved compatibility with PHP 8.4, specifically by making implicitly nullable parameters explicitly nullable.
- A large number of coding standards-enhancements, to help reduce friction when submitting plugins to marketplaces and plugin directories. Special props @crstauf for this effort.
- Minor documentation tweaks and improvements.
-
3.8.212 Sep 2024Release notes
Open source →- Add missing parameter to the
pre_as_enqueue_async_actionhook. - Bump minimum PHP version to 7.0.
- Bump minimum WordPress version to 6.4.
- Make the batch size adjustable during processing.
Release notes
Open source →- Add missing parameter to the
pre_as_enqueue_async_actionhook. - Bump minimum PHP version to 7.0.
- Bump minimum WordPress version to 6.4.
- Make the batch size adjustable during processing.
- Add missing parameter to the
-
3.8.120 Jun 2024 -
3.8.022 May 2024Release notes
Open source →- Bump "Tested up to" version to 6.5.
- Fix typos in perf.md.
- Merge Release/3.7.4 into trunk.
- Tweak - WP 6.5 compatibility.
- Update minimum requirements for WordPress (and PHP). Fix test matrix.
Release notes
Open source →- Documentation - Fixed typos in perf.md.
- Update - We now require WordPress 6.3 or higher.
- Update - We now require PHP 7.0 or higher.
-
3.7.405 Apr 2024Release notes
Open source →- Give a clear description of how the $unique parameter works.
- Merge release/3.7.3 into trunk.
- Preserve the tab field if set.
- Tweak - WP 6.5 compatibility.
Release notes
Open source →- Give a clear description of how the $unique parameter works.
- Preserve the tab field if set.
- Tweak - WP 6.5 compatibility.
-
3.7.320 Mar 2024Release notes
Open source →- Do not iterate over all of GET when building form in list table.
- Fix a few issues reported by PCP (Plugin Check Plugin).
- Try to save actions as unique even when the store doesn't support it.
- Tweak - WP 6.4 compatibility.
- Update "Tested up to" tag to WordPress 6.5.
- update version in package-lock.json.
-
3.7.214 Feb 2024 -
3.7.113 Dec 2023 -
3.7.020 Nov 2023Release notes
Open source →- Important: starting with this release, Action Scheduler follows an L-2 version policy (WordPress, and consequently PHP).
- Add extended indexes for hook_status_scheduled_date_gmt and status_scheduled_date_gmt.
- Catch and log exceptions thrown when actions can't be created, e.g. under a corrupt database schema.
- Tweak - WP 6.4 compatibility.
- Update unit tests for upcoming dependency version policy.
- make sure hook action_scheduler_failed_execution can access original exception object.
- mention dependency version policy in usage.md.
-
3.6.411 Oct 2023Release notes
Open source →- Performance improvements when bulk cancelling actions.
- Dev-related fixes.
-
3.6.313 Sep 2023 -
3.6.209 Aug 2023Release notes
Open source →- Add guidance about passing arguments.
- Atomic option locking.
- Improve bulk delete handling.
- Include database error in the exception message.
- Tweak - WP 6.3 compatibility.
-
3.6.114 Jun 2023Release notes
Open source →- Document new optional
$priorityarg for various API functions. - Document the new
--exclude-groupsWP CLI option. - Document the new
action_scheduler_inithook. - Ensure actions within each claim are executed in the expected order.
- Fix incorrect text domain.
- Remove SHOW TABLES usage when checking if tables exist.
- Document new optional
-
3.6.010 May 2023Release notes
Open source →- Add $unique parameter to function signatures.
- Add a cast-to-int for extra safety before forming new DateTime object.
- Add a hook allowing exceptions for consistently failing recurring actions.
- Add action priorities.
- Add init hook.
- Always raise the time limit.
- Bump minimatch from 3.0.4 to 3.0.8.
- Bump yaml from 2.2.1 to 2.2.2.
- Defensive coding relating to gaps in declared schedule types.
- Do not process an action if it cannot be set to
in-progress. - Filter view labels (status names) should be translatable | #919.
- Fix WPCLI progress messages.
- Improve data-store initialization flow.
- Improve error handling across all supported PHP versions.
- Improve logic for flushing the runtime cache.
- Support exclusion of multiple groups.
- Update lint-staged and Node/NPM requirements.
- add CLI clean command.
- add CLI exclude-group filter.
- exclude past-due from list table all filter count.
- throwing an exception if as_schedule_recurring_action interval param is not of type integer.
-
3.5.417 Jan 2023Release notes
Open source →- Add pre filters during action registration.
- Async scheduling.
- Calculate timeouts based on total actions.
- Correctly order the parameters for
ActionScheduler_ActionFactory's calls tosingle_unique. - Fetch action in memory first before releasing claim to avoid deadlock.
- PHP 8.2: declare property to fix creation of dynamic property warning.
- PHP 8.2: fix "Using ${var} in strings is deprecated, use {$var} instead".
- Prevent
undefined variablewarning for$num_pastdue_actions.
-
3.5.309 Nov 2022 -
3.5.216 Sep 2022 -
3.5.113 Sep 2022 -
3.5.025 Aug 2022Release notes
Open source →- Add - The active view link within the "Tools > Scheduled Actions" screen is now clickable.
- Add - A warning when there are past-due actions.
- Enhancement - Added the ability to schedule unique actions via an atomic operation.
- Enhancement - Improvements to cache invalidation when processing batches (when running on WordPress 6.0+).
- Enhancement - If a recurring action is found to be consistently failing, it will stop being rescheduled.
- Enhancement - Adds a new "Past Due" view to the scheduled actions list table.
-
3.4.208 Jun 2022Release notes
Open source →- Fix - Change the include for better linting.
- Fix - update: Added Action scheduler completed action hook.
-
3.4.103 May 2022Release notes
Open source →- Fix - Change the include for better linting.
- Fix - Fix the documented return type.
-
3.4.028 Oct 2021Release notes
Open source →- Enhancement - Number of items per page can now be set for the Scheduled Actions view (props @ovidiul). #771
- Fix - Do not lower the max_execution_time if it is already set to 0 (unlimited) (props @barryhughes). #755
- Fix - Avoid triggering autoloaders during the version resolution process (props @olegabr). #731 & #776
- Dev - ActionScheduler_wcSystemStatus PHPCS fixes (props @ovidiul). #761
- Dev - ActionScheduler_DBLogger.php PHPCS fixes (props @ovidiul). #768
- Dev - Fixed phpcs for ActionScheduler_Schedule_Deprecated (props @ovidiul). #762
- Dev - Improve actions table indices (props @glagonikas). #774 & #777
- Dev - PHPCS fixes for ActionScheduler_DBStore.php (props @ovidiul). #769 & #778
- Dev - PHPCS Fixes for ActionScheduler_Abstract_ListTable (props @ovidiul). #763 & #779
- Dev - Adds new filter action_scheduler_claim_actions_order_by to allow tuning of the claim query (props @glagonikas). #773
- Dev - PHPCS fixes for ActionScheduler_WpPostStore class (props @ovidiul). #780
-
3.3.015 Sep 2021Release notes
Open source →- Enhancement - Adds as_has_scheduled_action() to provide a performant way to test for existing actions. #645
- Fix - Improves compatibility with environments where NO_ZERO_DATE is enabled. #519
- Fix - Adds safety checks to guard against errors when our database tables cannot be created. #645
- Dev - Now supports queries that use multiple statuses. #649
- Dev - Minimum requirements for WordPress and PHP bumped (to 5.2 and 5.6 respectively). #723
-
3.2.121 Jun 2021Release notes
Open source →- Fix - Add extra safety/account for different versions of AS and different loading patterns. #714
- Fix - Handle hidden columns (Tools → Scheduled Actions) | #600.
-
3.2.003 Jun 2021Release notes
Open source →- Fix - Add "no ordering" option to as_next_scheduled_action().
- Fix - Add secondary scheduled date checks when claiming actions (DBStore) | #634.
- Fix - Add secondary scheduled date checks when claiming actions (wpPostStore) | #634.
- Fix - Adds a new index to the action table, reducing the potential for deadlocks (props: @glagonikas).
- Fix - Fix unit tests infrastructure and adapt tests to PHP 8.
- Fix - Identify in-use data store.
- Fix - Improve test_migration_is_scheduled.
- Fix - PHP notice on list table.
- Fix - Speed up clean up and batch selects.
- Fix - Update pending dependencies.
- Fix - [PHP 8.0] Only pass action arg values through to do_action_ref_array().
- Fix - [PHP 8] Set the PHP version to 7.1 in composer.json for PHP 8 compatibility.
- Fix - add is_initialized() to docs.
- Fix - fix file permissions.
- Fix - fixes #664 by replacing __ with esc_html__.
-
3.1.612 May 2020 -
v3.1.505 May 2020Nothing published for this version
-
3.1.418 Mar 2020Nothing published for this version
-
3.1.316 Mar 2020Nothing published for this version
-
3.1.210 Mar 2020Nothing published for this version
-
3.1.125 Feb 2020Nothing published for this version
-
3.1.013 Feb 2020Nothing published for this version
-
3.0.114 Jan 2020Nothing published for this version
-
3.0.003 Jan 2020Nothing published for this version
-
3.0.0-beta-103 Sep 2019 pre-releaseNothing published for this version
-
3.0.0-RC-414 Nov 2019 pre-releaseNothing published for this version
-
3.0.0-RC-306 Nov 2019 pre-releaseNothing published for this version
-
3.0.0-RC-225 Oct 2019 pre-releaseNothing published for this version
-
3.0.0-RC-122 Oct 2019 pre-releaseNothing published for this version
-
2.2.524 Apr 2019Nothing published for this version
-
2.2.415 Apr 2019Nothing published for this version
-
2.2.328 Mar 2019Nothing published for this version
-
2.2.228 Mar 2019Nothing published for this version
-
2.2.113 Mar 2019Nothing published for this version
-
2.2.031 Jan 2019Nothing published for this version
-
v2.1.102 Nov 2018Nothing published for this version
-
2.1.014 Sep 2018Nothing published for this version
-
2.0.005 Jul 2018Nothing published for this version
-
2.0.0-beta-212 Jun 2018 pre-releaseNothing published for this version
-
2.0.0-beta-128 May 2018 pre-releaseNothing published for this version
-
2.0.0-RC-227 Jun 2018 pre-releaseNothing published for this version
-
2.0.0-RC-121 Jun 2018 pre-releaseNothing published for this version
-
1.5.304 May 2017Nothing published for this version