Files
roi-theme/wp-content/plugins/wp-marketing-automations/libraries/action-scheduler-v2/class-bwfan-as-ct-cli.php
root a22573bf0b Commit inicial - WordPress Análisis de Precios Unitarios
- 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>
2025-11-03 21:04:30 -06:00

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
}
}