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 / Generate_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
Generate_Command.php
122 lines
1 <?php
2
3 namespace Action_Scheduler\WP_CLI\Action;
4
5 use function \WP_CLI\Utils\get_flag_value;
6
7 /**
8 * WP-CLI command: action-scheduler action generate
9 */
10 class Generate_Command extends \ActionScheduler_WPCLI_Command {
11
12 /**
13 * Execute command.
14 *
15 * @return void
16 */
17 public function execute() {
18 $hook = $this->args[0];
19 $schedule_start = $this->args[1];
20 $callback_args = get_flag_value( $this->assoc_args, 'args', array() );
21 $group = get_flag_value( $this->assoc_args, 'group', '' );
22 $interval = (int) get_flag_value( $this->assoc_args, 'interval', 0 ); // avoid absint() to support negative intervals
23 $count = absint( get_flag_value( $this->assoc_args, 'count', 1 ) );
24
25 if ( ! empty( $callback_args ) ) {
26 $callback_args = json_decode( $callback_args, true );
27 }
28
29 $schedule_start = as_get_datetime_object( $schedule_start );
30
31 $function_args = array(
32 'start' => absint( $schedule_start->format( 'U' ) ),
33 'interval' => $interval,
34 'count' => $count,
35 'hook' => $hook,
36 'callback_args' => $callback_args,
37 'group' => $group,
38 );
39
40 $function_args = array_values( $function_args );
41
42 try {
43 $actions_added = $this->generate( ...$function_args );
44 } catch ( \Exception $e ) {
45 $this->print_error( $e );
46 }
47
48 $num_actions_added = count( (array) $actions_added );
49
50 $this->print_success( $num_actions_added, 'single' );
51 }
52
53 /**
54 * Schedule multiple single actions.
55 *
56 * @param int $schedule_start Starting timestamp of first action.
57 * @param int $interval How long to wait between runs.
58 * @param int $count Limit number of actions to schedule.
59 * @param string $hook The hook to trigger.
60 * @param array $args Arguments to pass when the hook triggers.
61 * @param string $group The group to assign this job to.
62 * @return int[] IDs of actions added.
63 */
64 protected function generate( $schedule_start, $interval, $count, $hook, array $args = array(), $group = '' ) {
65 $actions_added = array();
66
67 $progress_bar = \WP_CLI\Utils\make_progress_bar(
68 sprintf(
69 /* translators: %d is number of actions to create */
70 _n( 'Creating %d action', 'Creating %d actions', $count, 'action-scheduler' ),
71 number_format_i18n( $count )
72 ),
73 $count
74 );
75
76 for ( $i = 0; $i < $count; $i++ ) {
77 $actions_added[] = as_schedule_single_action( $schedule_start + ( $i * $interval ), $hook, $args, $group );
78 $progress_bar->tick();
79 }
80
81 $progress_bar->finish();
82
83 return $actions_added;
84 }
85
86 /**
87 * Print a success message with the action ID.
88 *
89 * @param int $actions_added Number of actions generated.
90 * @param string $action_type Type of actions scheduled.
91 * @return void
92 */
93 protected function print_success( $actions_added, $action_type ) {
94 \WP_CLI::success(
95 sprintf(
96 /* translators: %1$d refers to the total number of tasks added, %2$s is the action type */
97 _n( '%1$d %2$s action scheduled.', '%1$d %2$s actions scheduled.', $actions_added, 'action-scheduler' ),
98 number_format_i18n( $actions_added ),
99 $action_type
100 )
101 );
102 }
103
104 /**
105 * Convert an exception into a WP CLI error.
106 *
107 * @param \Exception $e The error object.
108 * @throws \WP_CLI\ExitException When an error occurs.
109 * @return void
110 */
111 protected function print_error( \Exception $e ) {
112 \WP_CLI::error(
113 sprintf(
114 /* translators: %s refers to the exception error message. */
115 __( 'There was an error creating the scheduled action: %s', 'action-scheduler' ),
116 $e->getMessage()
117 )
118 );
119 }
120
121 }
122