diff --git a/includes/cli/class-co-authors-plus.php b/includes/cli/class-co-authors-plus.php index 707b14cfd6..a3feb79a85 100644 --- a/includes/cli/class-co-authors-plus.php +++ b/includes/cli/class-co-authors-plus.php @@ -15,67 +15,11 @@ * Co-Authors Plus CLI commands. */ class Co_Authors_Plus { - const NEWSPACK_SCHEDULE_AUTHOR_TERM_BACKFILL = 'newspack_cap_author_term_backfill'; - private static $live = false; // phpcs:ignore Squiz.Commenting.VariableComment.Missing private static $verbose = true; // phpcs:ignore Squiz.Commenting.VariableComment.Missing private static $user_logins = false; // phpcs:ignore Squiz.Commenting.VariableComment.Missing private static $guest_author_ids = false; // phpcs:ignore Squiz.Commenting.VariableComment.Missing - /** - * Add hooks. - */ - public static function init() { - add_action( self::NEWSPACK_SCHEDULE_AUTHOR_TERM_BACKFILL, [ __CLASS__, 'run_cap_cli_command' ] ); - add_action( 'init', [ __CLASS__, 'register_deactivation_hook' ] ); - } - - /** - * Execute the co-authors-plus create-terms-for-posts CLI command. - */ - public static function run_cap_cli_command() { - if ( method_exists( 'WP_CLI', 'runcommand' ) ) { - $result = WP_CLI::runcommand( - 'co-authors-plus create-author-terms-for-posts --records-per-batch=50', - [ - 'exit_error' => false, // This allows us to capture any errors that occur during script execution. - 'launch' => false, // This keeps any formatting that's been set. - 'return' => 'all', // This ensures we get stdout, stderr, and return code. - ] - ); - - WP_CLI::out( $result->stdout ); - - do_action( - 'newspack_log', - self::NEWSPACK_SCHEDULE_AUTHOR_TERM_BACKFILL, - ! empty( $result->stderr ) ? $result->stderr : $result->stdout, - [ - 'type' => 0 !== $result->return_code || ! empty( $result->stderr ) ? 'error' : 'success', - 'data' => [ - 'stdout' => $result->stdout, - 'timestamp' => gmdate( 'c', time() ), - ], - 'file' => 'newspack_cap_author_terms_backfill', - ] - ); - } - } - - /** - * Unschedule any unexecuted jobs upon plugin deactivation. - */ - public static function register_deactivation_hook() { - register_deactivation_hook( NEWSPACK_PLUGIN_FILE, [ __CLASS__, 'unschedule_author_term_backfill' ] ); - } - - /** - * Clear the cron job when this plugin is deactivated. - */ - public static function unschedule_author_term_backfill() { - wp_clear_scheduled_hook( self::NEWSPACK_SCHEDULE_AUTHOR_TERM_BACKFILL ); - } - /** * Migrate Co-Authors Plus guest authors to regular users with the [Guest Contributor role](https://help.newspack.com/publishing-and-appearance/guest-contributors/). * @@ -180,39 +124,6 @@ public function backfill_non_editing_contributor( $args, $assoc_args ) { WP_CLI::line( '' ); } - /** - * Set up a cron job to backfill any missing Co-Author plus author terms for posts. - * Runs incrementally at a rate of up to 250 posts per hour to minimize performance impact. - * - * @return void - * @throws WP_CLI\ExitException When the command fails. - */ - public function schedule_author_term_backfill() { - WP_CLI::line( '' ); - - if ( has_action( self::NEWSPACK_SCHEDULE_AUTHOR_TERM_BACKFILL ) ) { - remove_action( - self::NEWSPACK_SCHEDULE_AUTHOR_TERM_BACKFILL, - [ __CLASS__, 'run_cap_cli_command' ] - ); - } - - if ( ! wp_next_scheduled( self::NEWSPACK_SCHEDULE_AUTHOR_TERM_BACKFILL ) ) { - $result = wp_schedule_event( time(), 'hourly', self::NEWSPACK_SCHEDULE_AUTHOR_TERM_BACKFILL ); - if ( $result ) { - WP_CLI::success( 'Scheduled author term backfill.' ); - } else { - WP_CLI::error( 'Could not schedule author term backfill.' ); - } - } else { - // Unschedule and reschedule. - self::unschedule_author_term_backfill(); - self::schedule_author_term_backfill(); - } - - WP_CLI::line( '' ); - } - /** * Migrate unlinked guest authors to regular users. * @@ -578,4 +489,3 @@ private static function assign_user_avatar( $guest_author, $user_id ) { } } } -Co_Authors_Plus::init(); diff --git a/includes/cli/class-initializer.php b/includes/cli/class-initializer.php index cb40765153..8f4ca83bf4 100644 --- a/includes/cli/class-initializer.php +++ b/includes/cli/class-initializer.php @@ -60,13 +60,6 @@ public static function register_comands() { WP_CLI::add_command( 'newspack migrate-co-authors-guest-authors', [ 'Newspack\CLI\Co_Authors_Plus', 'migrate_guest_authors' ] ); WP_CLI::add_command( 'newspack backfill-non-editing-contributors', [ 'Newspack\CLI\Co_Authors_Plus', 'backfill_non_editing_contributor' ] ); - WP_CLI::add_command( - 'newspack schedule-co-authors-author-term-backfill', - [ - 'Newspack\CLI\Co_Authors_Plus', - 'schedule_author_term_backfill', - ] - ); WP_CLI::add_command( 'newspack migrate-expired-subscriptions', [ 'Newspack\CLI\WooCommerce_Subscriptions', 'migrate_expired_subscriptions' ] ); } }