PluginProbe ʕ •ᴥ•ʔ
MailPoet – Newsletters, Email Marketing, and Automation / 5.34.3
MailPoet – Newsletters, Email Marketing, and Automation v5.34.3
5.36.1 5.36.0 5.35.1 5.35.0 5.34.3 5.34.2 5.34.1 5.34.0 5.33.1 5.33.0 5.32.0 5.31.0 5.30.0 5.29.0 5.28.1 5.28.0 5.27.0 5.26.0 5.26.1 5.25.0 5.24.0 4.43.0 4.43.1 4.44.0 4.44.1 4.45.0 4.46.0 4.47.0 4.48.0 4.48.1 4.48.2 4.49.0 4.49.1 4.5.0 4.5.1 4.5.2 4.50.0 4.50.1 4.51.0 4.51.1 4.51.2 4.52.0 4.53.0 4.54.0 4.55.0 4.56.0 4.57.0 4.58.0 4.58.1 4.58.2 4.6.0 4.6.1 4.6.2 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 5.0.0 5.0.1 5.0.2 5.1.0 5.1.1 5.10.0 5.10.1 5.11.0 5.12.0 5.12.1 5.12.10 5.12.11 5.12.12 5.12.13 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.13.0 5.13.1 5.13.2 5.14.0 5.14.1 5.14.2 5.14.3 5.15.0 5.15.1 5.16.0 5.16.1 5.16.2 5.16.3 5.16.4 5.17.0 5.17.1 5.17.2 5.17.3 5.17.4 5.17.5 5.17.6 5.18.0 5.19.0 5.2.0 5.2.1 5.2.2 5.2.3 5.20.0 5.21.0 5.21.1 5.21.2 5.21.3 5.22.0 5.22.1 5.22.2 5.22.3 5.22.4 5.23.0 5.23.1 5.23.2 5.3.0 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.3.7 5.4.0 5.4.1 5.4.2 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.6.3 5.6.4 5.7.0 5.7.1 5.8.0 5.8.1 5.9.0 3.0.0-beta.15 3.7.1 3.0.0-beta.16 3.7.2 3.0.0-beta.17 3.7.3 3.0.0-beta.18 3.7.4 3.0.0-beta.19 3.7.5 3.0.0-beta.2 3.7.6 3.0.0-beta.20 3.7.8 3.0.0-beta.21 3.70.0 3.0.0-beta.22 3.71.0 3.0.0-beta.23 3.71.1 3.0.0-beta.23.1 3.71.2 3.0.0-beta.23.2 3.71.3 3.0.0-beta.24 3.72.0 3.0.0-beta.25 3.73.0 3.0.0-beta.26 3.73.1 3.0.0-beta.27 3.73.2 3.0.0-beta.28 3.74.0 3.0.0-beta.29 3.74.1 3.0.0-beta.3 3.74.2 3.0.0-beta.30 3.74.3 3.0.0-beta.31 3.75.0 3.0.0-beta.32 3.75.1 3.0.0-beta.33 3.76.0 3.0.0-beta.33.1 3.77.0 3.0.0-beta.34.0.0 3.77.1 3.0.0-beta.36.0.0 3.78.0 3.0.0-beta.36.0.1 3.79.0 3.0.0-beta.36.2.0 3.8 3.0.0-beta.36.3.0 3.8.1 3.0.0-beta.36.3.1 3.8.2 3.0.0-beta.37.0.0 3.8.3 3.0.0-beta.4 3.8.4 3.0.0-beta.5 3.8.5 3.0.0-beta.6 3.8.6 3.0.0-beta.7 3.80.0 3.0.0-beta.7.1 3.81.0 3.0.0-beta.8 3.82.0 3.0.0-beta.9 3.83.0 3.0.0-rc.1.0.0 3.84.0 3.0.0-rc.1.0.1 3.84.1 3.0.0-rc.1.0.2 3.85.0 3.0.0-rc.1.0.3 3.85.1 3.0.0-rc.1.0.4 3.86.0 3.0.0-rc.2.0.0 3.87.0 3.0.0-rc.2.0.1 3.87.1 3.0.0-rc.2.0.2 3.87.2 3.0.0-rc.2.0.3 3.88.0 3.0.1 3.88.1 3.0.2 3.88.2 3.0.3 3.89.0 3.0.4 3.89.1 3.0.5 3.89.2 3.0.6 3.89.3 3.0.7 3.89.4 3.0.8 3.9.0 3.0.9 3.9.1 3.1.0 3.90.0 3.10 3.90.1 3.10.1 3.90.2 3.100.0 3.91.0 3.100.1 3.91.1 3.100.2 3.92.0 3.101.0 3.92.1 3.101.1 3.93.0 3.102.0 3.93.1 3.102.1 3.94.0 3.103.0 3.95.0 3.103.1 3.95.1 3.11.0 3.96.0 3.11.1 3.96.1 3.11.2 3.97.0 3.11.3 3.98.0 3.11.4 3.98.1 3.11.5 3.99.0 3.12.0 3.99.1 3.12.1 4.0.0 3.13.0 4.0.1 3.14.0 4.1.0 3.14.1 4.1.1 3.15.0 4.10.0 3.16.0 4.11.0 3.16.1 4.11.1 3.16.2 4.12.0 3.16.3 4.12.1 3.17.0 4.12.2 3.17.1 4.13.0 3.17.2 4.14.0 3.18.0 4.15.0 3.18.1 4.16.0 3.18.2 4.17.0 3.19.0 4.17.1 3.19.1 4.18.0 3.19.2 4.18.1 3.19.3 4.19.0 3.2.0 4.2.0 3.2.1 4.20.0 3.2.2 4.20.1 3.2.3 4.20.2 3.2.4 4.21.0 3.2.5 4.22.0 3.20.0 4.22.1 3.21.0 4.22.2 3.21.1 4.23.0 3.22.0 4.24.0 3.23.0 4.25.0 3.23.1 4.26.0 3.23.2 4.26.1 3.24.0 4.27.0 3.25.0 4.28.0 3.25.1 4.29.0 3.26.0 4.3.0 3.26.1 4.3.1 3.27.0 4.30.0 3.28.0 4.31.0 3.29.0 4.31.1 3.3.0 4.32.0 3.3.1 4.33.0 3.3.2 4.34.0 3.3.3 4.35.0 3.3.4 4.35.1 3.3.5 4.36.0 3.3.6 4.37.0 3.30.0 4.38.0 3.31.0 4.39.0 3.31.1 4.4.0 3.32.0 4.40.0 3.32.1 4.41.0 3.32.2 4.41.1 3.33.0 4.41.2 3.34.0 4.41.3 3.34.1 4.42.0 3.34.2 4.42.1 3.34.3 3.34.4 3.35.0 3.35.1 3.35.3 3.35.4 3.36.0 3.37.0 3.37.1 3.37.2 3.37.3 3.38.0 3.38.1 3.39.0 3.39.1 3.39.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.40.0 3.40.1 3.41.0 3.41.1 3.41.2 3.42.0 3.42.1 3.42.2 3.42.3 3.43.0 3.43.1 3.44.0 3.45.0 3.45.1 3.46.0 3.46.1 3.46.10 3.46.11 3.46.12 3.46.13 3.46.14 3.46.2 3.46.3 3.46.4 3.46.5 3.46.6 3.46.7 3.46.8 3.46.9 3.47.0 3.47.1 3.47.10 3.47.11 3.47.2 3.47.3 3.47.5 3.47.6 3.47.7 3.47.9 3.48.0 3.48.1 3.49.0 3.49.1 3.5.0 3.5.1 3.50.0 3.51.0 3.51.1 3.51.2 3.52.0 3.53.0 3.54.0 3.54.1 3.54.2 3.54.3 3.55.0 3.55.1 3.56.0 3.56.1 3.56.2 3.57.0 3.57.1 3.58.0 3.59.0 3.59.1 3.59.2 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.60.0 3.60.1 3.60.10 3.60.11 3.60.12 3.60.2 3.60.3 3.60.4 3.60.6 3.60.7 3.60.8 3.60.9 3.61.0 3.62.0 3.62.1 3.63.0 3.64.0 3.64.1 3.64.2 3.64.3 3.65.0 trunk 3.65.1 3.0.0 3.66.0 3.0.0-beta.1 3.67.0 3.0.0-beta.10 3.67.1 3.0.0-beta.11 3.68.0 3.0.0-beta.12 3.69.0 3.0.0-beta.13 3.69.1 3.0.0-beta.14 3.7.0
mailpoet / vendor / woocommerce / action-scheduler / classes / WP_CLI / Migration_Command.php
mailpoet / vendor / woocommerce / action-scheduler / classes / WP_CLI Last commit date
Action 1 year ago ActionScheduler_WPCLI_Clean_Command.php 1 year ago ActionScheduler_WPCLI_QueueRunner.php 1 year ago ActionScheduler_WPCLI_Scheduler_command.php 1 year ago Action_Command.php 1 year ago Migration_Command.php 1 year ago ProgressBar.php 1 year ago System_Command.php 1 year ago index.php 3 years ago
Migration_Command.php
134 lines
1 <?php
2 namespace Action_Scheduler\WP_CLI;
3 if (!defined('ABSPATH')) exit;
4 use Action_Scheduler\Migration\Config;
5 use Action_Scheduler\Migration\Runner;
6 use Action_Scheduler\Migration\Scheduler;
7 use Action_Scheduler\Migration\Controller;
8 use WP_CLI;
9 use WP_CLI_Command;
10 class Migration_Command extends WP_CLI_Command {
11 private $total_processed = 0;
12 public function register() {
13 if ( ! defined( 'WP_CLI' ) || ! WP_CLI ) {
14 return;
15 }
16 WP_CLI::add_command(
17 'action-scheduler migrate',
18 array( $this, 'migrate' ),
19 array(
20 'shortdesc' => 'Migrates actions to the DB tables store',
21 'synopsis' => array(
22 array(
23 'type' => 'assoc',
24 'name' => 'batch-size',
25 'optional' => true,
26 'default' => 100,
27 'description' => 'The number of actions to process in each batch',
28 ),
29 array(
30 'type' => 'assoc',
31 'name' => 'free-memory-on',
32 'optional' => true,
33 'default' => 50,
34 'description' => 'The number of actions to process between freeing memory. 0 disables freeing memory',
35 ),
36 array(
37 'type' => 'assoc',
38 'name' => 'pause',
39 'optional' => true,
40 'default' => 0,
41 'description' => 'The number of seconds to pause when freeing memory',
42 ),
43 array(
44 'type' => 'flag',
45 'name' => 'dry-run',
46 'optional' => true,
47 'description' => 'Reports on the actions that would have been migrated, but does not change any data',
48 ),
49 ),
50 )
51 );
52 }
53 public function migrate( $positional_args, $assoc_args ) {
54 $this->init_logging();
55 $config = $this->get_migration_config( $assoc_args );
56 $runner = new Runner( $config );
57 $runner->init_destination();
58 $batch_size = isset( $assoc_args['batch-size'] ) ? (int) $assoc_args['batch-size'] : 100;
59 $free_on = isset( $assoc_args['free-memory-on'] ) ? (int) $assoc_args['free-memory-on'] : 50;
60 $sleep = isset( $assoc_args['pause'] ) ? (int) $assoc_args['pause'] : 0;
61 \ActionScheduler_DataController::set_free_ticks( $free_on );
62 \ActionScheduler_DataController::set_sleep_time( $sleep );
63 do {
64 $actions_processed = $runner->run( $batch_size );
65 $this->total_processed += $actions_processed;
66 } while ( $actions_processed > 0 );
67 if ( ! $config->get_dry_run() ) {
68 // let the scheduler know that there's nothing left to do.
69 $scheduler = new Scheduler();
70 $scheduler->mark_complete();
71 }
72 WP_CLI::success( sprintf( '%s complete. %d actions processed.', $config->get_dry_run() ? 'Dry run' : 'Migration', $this->total_processed ) );
73 }
74 private function get_migration_config( $args ) {
75 $args = wp_parse_args(
76 $args,
77 array(
78 'dry-run' => false,
79 )
80 );
81 $config = Controller::instance()->get_migration_config_object();
82 $config->set_dry_run( ! empty( $args['dry-run'] ) );
83 return $config;
84 }
85 private function init_logging() {
86 add_action(
87 'action_scheduler/migrate_action_dry_run',
88 function ( $action_id ) {
89 WP_CLI::debug( sprintf( 'Dry-run: migrated action %d', $action_id ) );
90 }
91 );
92 add_action(
93 'action_scheduler/no_action_to_migrate',
94 function ( $action_id ) {
95 WP_CLI::debug( sprintf( 'No action found to migrate for ID %d', $action_id ) );
96 }
97 );
98 add_action(
99 'action_scheduler/migrate_action_failed',
100 function ( $action_id ) {
101 WP_CLI::warning( sprintf( 'Failed migrating action with ID %d', $action_id ) );
102 }
103 );
104 add_action(
105 'action_scheduler/migrate_action_incomplete',
106 function ( $source_id, $destination_id ) {
107 WP_CLI::warning( sprintf( 'Unable to remove source action with ID %d after migrating to new ID %d', $source_id, $destination_id ) );
108 },
109 10,
110 2
111 );
112 add_action(
113 'action_scheduler/migrated_action',
114 function ( $source_id, $destination_id ) {
115 WP_CLI::debug( sprintf( 'Migrated source action with ID %d to new store with ID %d', $source_id, $destination_id ) );
116 },
117 10,
118 2
119 );
120 add_action(
121 'action_scheduler/migration_batch_starting',
122 function ( $batch ) {
123 WP_CLI::debug( 'Beginning migration of batch: ' . print_r( $batch, true ) ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_print_r
124 }
125 );
126 add_action(
127 'action_scheduler/migration_batch_complete',
128 function ( $batch ) {
129 WP_CLI::log( sprintf( 'Completed migration of %d actions', count( $batch ) ) );
130 }
131 );
132 }
133 }
134