PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.16.6
GiveWP – Donation Plugin and Fundraising Platform v4.16.6
4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / vendor / woocommerce / action-scheduler / classes / WP_CLI / Action / Run_Command.php
give / vendor / woocommerce / action-scheduler / classes / WP_CLI / Action Last commit date
Cancel_Command.php 6 months ago Create_Command.php 6 months ago Delete_Command.php 6 months ago Generate_Command.php 6 months ago Get_Command.php 6 months ago List_Command.php 6 months ago Next_Command.php 6 months ago Run_Command.php 6 months ago
Run_Command.php
195 lines
1 <?php
2
3 namespace Action_Scheduler\WP_CLI\Action;
4
5 /**
6 * WP-CLI command: action-scheduler action run
7 */
8 class Run_Command extends \ActionScheduler_WPCLI_Command {
9
10 /**
11 * Array of action IDs to execute.
12 *
13 * @var int[]
14 */
15 protected $action_ids = array();
16
17 /**
18 * Number of executed, failed, ignored, invalid, and total actions.
19 *
20 * @var array<string, int>
21 */
22 protected $action_counts = array(
23 'executed' => 0,
24 'failed' => 0,
25 'ignored' => 0,
26 'invalid' => 0,
27 'total' => 0,
28 );
29
30 /**
31 * Construct.
32 *
33 * @param string[] $args Positional arguments.
34 * @param array<string, string> $assoc_args Keyed arguments.
35 */
36 public function __construct( array $args, array $assoc_args ) {
37 parent::__construct( $args, $assoc_args );
38
39 $this->action_ids = array_map( 'absint', $args );
40 $this->action_counts['total'] = count( $this->action_ids );
41
42 add_action( 'action_scheduler_execution_ignored', array( $this, 'on_action_ignored' ) );
43 add_action( 'action_scheduler_after_execute', array( $this, 'on_action_executed' ) );
44 add_action( 'action_scheduler_failed_execution', array( $this, 'on_action_failed' ), 10, 2 );
45 add_action( 'action_scheduler_failed_validation', array( $this, 'on_action_invalid' ), 10, 2 );
46 }
47
48 /**
49 * Execute.
50 *
51 * @return void
52 */
53 public function execute() {
54 $runner = \ActionScheduler::runner();
55
56 $progress_bar = \WP_CLI\Utils\make_progress_bar(
57 sprintf(
58 /* translators: %d: number of actions */
59 _n( 'Executing %d action', 'Executing %d actions', $this->action_counts['total'], 'action-scheduler' ),
60 number_format_i18n( $this->action_counts['total'] )
61 ),
62 $this->action_counts['total']
63 );
64
65 foreach ( $this->action_ids as $action_id ) {
66 $runner->process_action( $action_id, 'Action Scheduler CLI' );
67 $progress_bar->tick();
68 }
69
70 $progress_bar->finish();
71
72 foreach ( array(
73 'ignored',
74 'invalid',
75 'failed',
76 ) as $type ) {
77 $count = $this->action_counts[ $type ];
78
79 if ( empty( $count ) ) {
80 continue;
81 }
82
83 /*
84 * translators:
85 * %1$d: count of actions evaluated.
86 * %2$s: type of action evaluated.
87 */
88 $format = _n( '%1$d action %2$s.', '%1$d actions %2$s.', $count, 'action-scheduler' );
89
90 \WP_CLI::warning(
91 sprintf(
92 $format,
93 number_format_i18n( $count ),
94 $type
95 )
96 );
97 }
98
99 \WP_CLI::success(
100 sprintf(
101 /* translators: %d: number of executed actions */
102 _n( 'Executed %d action.', 'Executed %d actions.', $this->action_counts['executed'], 'action-scheduler' ),
103 number_format_i18n( $this->action_counts['executed'] )
104 )
105 );
106 }
107
108 /**
109 * Action: action_scheduler_execution_ignored
110 *
111 * @param int $action_id Action ID.
112 * @return void
113 */
114 public function on_action_ignored( $action_id ) {
115 if ( 'action_scheduler_execution_ignored' !== current_action() ) {
116 return;
117 }
118
119 $action_id = absint( $action_id );
120
121 if ( ! in_array( $action_id, $this->action_ids, true ) ) {
122 return;
123 }
124
125 $this->action_counts['ignored']++;
126 \WP_CLI::debug( sprintf( 'Action %d was ignored.', $action_id ) );
127 }
128
129 /**
130 * Action: action_scheduler_after_execute
131 *
132 * @param int $action_id Action ID.
133 * @return void
134 */
135 public function on_action_executed( $action_id ) {
136 if ( 'action_scheduler_after_execute' !== current_action() ) {
137 return;
138 }
139
140 $action_id = absint( $action_id );
141
142 if ( ! in_array( $action_id, $this->action_ids, true ) ) {
143 return;
144 }
145
146 $this->action_counts['executed']++;
147 \WP_CLI::debug( sprintf( 'Action %d was executed.', $action_id ) );
148 }
149
150 /**
151 * Action: action_scheduler_failed_execution
152 *
153 * @param int $action_id Action ID.
154 * @param \Exception $e Exception.
155 * @return void
156 */
157 public function on_action_failed( $action_id, \Exception $e ) {
158 if ( 'action_scheduler_failed_execution' !== current_action() ) {
159 return;
160 }
161
162 $action_id = absint( $action_id );
163
164 if ( ! in_array( $action_id, $this->action_ids, true ) ) {
165 return;
166 }
167
168 $this->action_counts['failed']++;
169 \WP_CLI::debug( sprintf( 'Action %d failed execution: %s', $action_id, $e->getMessage() ) );
170 }
171
172 /**
173 * Action: action_scheduler_failed_validation
174 *
175 * @param int $action_id Action ID.
176 * @param \Exception $e Exception.
177 * @return void
178 */
179 public function on_action_invalid( $action_id, \Exception $e ) {
180 if ( 'action_scheduler_failed_validation' !== current_action() ) {
181 return;
182 }
183
184 $action_id = absint( $action_id );
185
186 if ( ! in_array( $action_id, $this->action_ids, true ) ) {
187 return;
188 }
189
190 $this->action_counts['invalid']++;
191 \WP_CLI::debug( sprintf( 'Action %d failed validation: %s', $action_id, $e->getMessage() ) );
192 }
193
194 }
195