thefrosty/wp-missed-schedule-publisher

Catches scheduled posts that have been missed and publishes them.

1.0.1 2024-12-18 16:06 UTC

This package is auto-updated.

Last update: 2025-02-20 17:54:11 UTC


README

PHP from Packagist Latest Stable Version Total Downloads License Build Status

Catches scheduled posts that have been missed and publishes them.

Package Installation (via Composer)

$ composer require thefrosty/wp-missed-schedule-publisher:^1.0

Integrations

Supports the following 3rd party plugin(s):

  1. TheFrosty\WpMissedSchedulePublisher\WpAdmin\MissedSchedulePublisher::ACTION_SCHEDULE_MISSED
  2. TheFrosty\WpMissedSchedulePublisher\WpAdmin\MissedSchedulePublisher::ACTION_SCHEDULE_PUBLISH
  • How to use actions
    • When a one or more posts have missed their schedule. Example:
       use TheFrosty\WpMissedSchedulePublisher\WpAdmin\MissedSchedulePublisher;
       add_action(MissedSchedulePublisher::ACTION_SCHEDULE_MISSED, static function(array $post_ids): void {
             // Do something with the post ID's array.
       });
    • When a post that missed its schedule is published. Example:
       use TheFrosty\WpMissedSchedulePublisher\WpAdmin\MissedSchedulePublisher;
       add_action(MissedSchedulePublisher::ACTION_SCHEDULE_PUBLISH, static function(int $post_id,  false | string $old_status): void {
             $new_status = get_post_status($post_id);
      
             // Maybe there was an issue publishing?
             if ($old_status === $new_status) {
                 return;
             }
       
             // Do something with the $post_id. 
       });
  • Filters
  1. TheFrosty\WpMissedSchedulePublisher\WpAdmin\MissedSchedulePublisher::FILTER_BATCH_LIMIT
  2. TheFrosty\WpMissedSchedulePublisher\WpAdmin\MissedSchedulePublisher::FILTER_FREQUENCY
  • How to use filters
    • Change the allowed batch (query) limit count. Example:
       use TheFrosty\WpMissedSchedulePublisher\WpAdmin\MissedSchedulePublisher;
       // Lower it to only 10 (defaults to 20) 
       add_filter(MissedSchedulePublisher::FILTER_BATCH_LIMIT, static fn(): int => 10);
    • Change the frequency of the check (in seconds). Example:
       use TheFrosty\WpMissedSchedulePublisher\WpAdmin\MissedSchedulePublisher;
       // Every hour (defaults to 15 minutes) 
       add_filter(MissedSchedulePublisher::FILTER_FREQUENCY, static fn(): int => \HOUR_IN_SECONDS);
       // Every minute (defaults to 15 minutes) 
       add_filter(MissedSchedulePublisher::FILTER_FREQUENCY, static fn(): int => \MINUTE_IN_SECONDS);