PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.7.1
GiveWP – Donation Plugin and Fundraising Platform v4.7.1
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 / src / FormMigration / Commands / TransferCommand.php
give / src / FormMigration / Commands Last commit date
MigrationCommand.php 2 years ago TransferCommand.php 2 years ago
TransferCommand.php
79 lines
1 <?php
2
3 namespace Give\FormMigration\Commands;
4
5 use Give\DonationForms\Models\DonationForm as DonationFormV3;
6 use Give\DonationForms\V2\Models\DonationForm as DonationFormV2;
7 use Give\FormMigration\Actions\TransferDonations;
8 use Give\FormMigration\Actions\TransferFormUrl;
9 use Give\FormMigration\Concerns\Blocks\BlockDifference;
10 use Give\FormMigration\DataTransferObjects\FormMigrationPayload;
11 use Give\FormMigration\DataTransferObjects\TransferOptions;
12 use Give\FormMigration\Pipeline;
13 use Give\Framework\Blocks\BlockModel;
14 use Give\Framework\Database\DB;
15 use WP_CLI;
16
17 use function WP_CLI\Utils\get_flag_value;
18
19 class TransferCommand
20 {
21 /**
22 * Prints a greeting.
23 *
24 * ## OPTIONS
25 *
26 * <id>
27 * : A form ID to transfer donations
28 *
29 * [--dry-run]
30 * : Whether to dry run
31 *
32 * [--changeUrl]
33 * : Whether to change the URL
34 *
35 * [--delete]
36 * : Whether to delete the old form
37 *
38 * [--redirect]
39 * : Whether to redirect the old form in shortcodes and blocks
40 */
41 public function __invoke( $args, $assoc_args )
42 {
43 [$formIdV3] = $args;
44
45 $sourceId = give_get_meta($formIdV3, 'migratedFormId', true);
46
47
48 $options = TransferOptions::fromArray([
49 'delete' => (bool) get_flag_value($assoc_args, 'delete'),
50 ]);
51
52 $isDryRun = get_flag_value($assoc_args, 'dry-run');
53
54 $count = DB::table('give_revenue')
55 ->where('form_id', $sourceId)
56 ->count();
57
58 try {
59 DB::transaction(function() use ($formIdV3, $sourceId, $options, $isDryRun) {
60 TransferFormUrl::from($sourceId)->to($formIdV3);
61 TransferDonations::from($sourceId)->to($formIdV3);
62
63 if($options->shouldDelete()) {
64 wp_trash_post($sourceId);
65 }
66
67 give_update_meta($formIdV3, 'transferredFormId', true);
68
69 if($isDryRun) {
70 DB::rollback();
71 }
72 });
73 WP_CLI::success(sprintf('Transferred %s donation(s).', $count));
74 } catch( \Exception $e ) {
75 WP_CLI::error('Failed to transfer donations.');
76 }
77 }
78 }
79