WP Manifestindependent plugin directory
manifest / content / missed-schedule-fixer

1815 - Missed Schedule Fixer

Fixes "missed schedule" problems with posts

★ 1stars
134kcomposer installs

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/achttienvijftien/missed-schedule-fixer/archive/refs/heads/main.zip

On Packagist as achttienvijftien/missed-schedule-fixer:

composer require achttienvijftien/missed-schedule-fixer
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Ever had problems with scheduled posts not being published? This plugin fixes that problem.

Configuration

Every minute the plugin looks for scheduled posts that lost their publish event. To keep that query fast, only posts scheduled within a window around the current time are considered: by default from one day into the past up to one hour into the future. Posts that were scheduled long before that window are considered stale and are left alone.

Use the achttienvijftien_missed_schedule_fixer_query_args filter to change the query. For example, to look a week into the past instead of a day:

add_filter(
    'achttienvijftien_missed_schedule_fixer_query_args',
    function ( $query_args ) {
        $query_args['date_query'][0]['after'] = wp_date( 'Y-m-d H:i:s', time() - WEEK_IN_SECONDS );

        return $query_args;
    }
);

Keep the query bounded by post_date. Removing the date query brings back the slow, unbounded behaviour this window is meant to avoid.

Prerequisites

Basic installation

Testing

Testing

Setup

  1. Install Composer packages: composer install
  2. Install the correct Node.js version: nvm install
  3. Install NPM packages: yarn
  4. Start wp-env yarn wp-env start
  5. Check if test suite is ready: yarn test
  6. When test result is OK you're ready to start writing tests in test/php