- WordPress core y plugins - Tema Twenty Twenty-Four configurado - Plugin allow-unfiltered-html.php simplificado - .gitignore configurado para excluir wp-config.php y uploads 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
101 lines
3.1 KiB
PHP
Executable File
101 lines
3.1 KiB
PHP
Executable File
<?php
|
|
|
|
use WP_CLI\ExitException;
|
|
use function WP_CLI\Utils\get_flag_value;
|
|
|
|
/**
|
|
* Commands for the Custom Action Scheduler
|
|
*/
|
|
class BWFAN_AS_V2_CLI extends WP_CLI_Command {
|
|
|
|
/**
|
|
* Run the Autonami tasks
|
|
*
|
|
* ## OPTIONS
|
|
*
|
|
* [--size=<size>]
|
|
* : The maximum number of tasks to run. Defaults to 50.
|
|
*
|
|
* @param array $args Positional arguments.
|
|
* @param array $assoc_args Keyed arguments.
|
|
*
|
|
* @throws ExitException When an error occurs.
|
|
*/
|
|
public function run( $args, $assoc_args ) {
|
|
// Handle passed arguments.
|
|
$size = absint( get_flag_value( $assoc_args, 'size', 50 ) );
|
|
|
|
$tasks_completed = 0;
|
|
|
|
try {
|
|
if ( ! class_exists( 'ActionScheduler_QueueRunner' ) ) {
|
|
$this->print_custom_error( '1' );
|
|
}
|
|
/** Check if Autonami is in sandbox mode */
|
|
if ( true === BWFAN_Common::is_sandbox_mode_active() ) {
|
|
$this->print_custom_error( '2' );
|
|
}
|
|
|
|
/** Custom queue cleaner instance */
|
|
$cleaner = new ActionScheduler_QueueCleaner( null, $size );
|
|
|
|
/** Queue runner instance */
|
|
$runner = new ActionScheduler_WPCLI_QueueRunner( null, null, $cleaner );
|
|
|
|
/** Run Action Scheduler worker */
|
|
// Determine how many tasks will be run in the first batch.
|
|
$total = $runner->setup( $size );
|
|
|
|
WP_CLI::log( "Current batch size is: " . $size );
|
|
|
|
$this->print_total_tasks( $total );
|
|
$tasks_completed = $runner->run();
|
|
} catch ( Exception $e ) {
|
|
$this->print_error( $e );
|
|
}
|
|
|
|
$this->print_success( $tasks_completed );
|
|
}
|
|
|
|
protected function print_custom_error( $type ) {
|
|
switch ( $type ) {
|
|
case '1':
|
|
$msg = 'ActionScheduler_QueueRunner class not found.';
|
|
case '2':
|
|
$msg = 'FunnelKit Automations Sandbox mode is ON.';
|
|
default:
|
|
$msg = 'Some error occurred';
|
|
}
|
|
WP_CLI::error( sprintf( /* translators: %s refers to the exception error message. */ $msg ) );
|
|
}
|
|
|
|
/**
|
|
* Print WP CLI message about how many tasks are about to be processed.
|
|
*
|
|
* @param int $total
|
|
*/
|
|
protected function print_total_tasks( $total ) {
|
|
WP_CLI::log( sprintf( /* translators: %d refers to how many scheduled tasks were found to run */ _n( 'Found %d scheduled task', 'Found %d scheduled tasks', $total, 'action-scheduler' ), number_format_i18n( $total ) ) ); // phpcs:ignore WordPress.WP.I18n.TextDomainMismatch
|
|
}
|
|
|
|
/**
|
|
* Convert an exception into a WP CLI error.
|
|
*
|
|
* @param Exception $e The error object.
|
|
*
|
|
* @throws ExitException
|
|
*/
|
|
protected function print_error( Exception $e ) {
|
|
WP_CLI::error( sprintf( /* translators: %s refers to the exception error message. */ __( 'There was an error running the action scheduler: %s', 'action-scheduler' ), $e->getMessage() ) ); // phpcs:ignore WordPress.WP.I18n.TextDomainMismatch
|
|
}
|
|
|
|
/**
|
|
* Print a success message with the number of completed tasks.
|
|
*
|
|
* @param int $tasks_completed
|
|
*/
|
|
protected function print_success( $tasks_completed ) {
|
|
WP_CLI::success( sprintf( /* translators: %d refers to the total number of tasks completed */ _n( '%d scheduled task completed.', '%d scheduled tasks completed.', $tasks_completed, 'action-scheduler' ), number_format_i18n( $tasks_completed ) ) ); // phpcs:ignore WordPress.WP.I18n.TextDomainMismatch
|
|
}
|
|
}
|