PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.8.0
GiveWP – Donation Plugin and Fundraising Platform v3.8.0
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 / TestData / Commands / FormSeedCommand.php
give / src / TestData / Commands Last commit date
DonationSeedCommand.php 4 years ago DonationStatusCommand.php 4 years ago DonorSeedCommand.php 4 years ago FormSeedCommand.php 4 years ago LogsSeedCommand.php 4 years ago PageSeedCommand.php 4 years ago
FormSeedCommand.php
132 lines
1 <?php
2
3 namespace Give\TestData\Commands;
4
5 use Exception;
6 use Give\TestData\Factories\DonationFormFactory;
7 use Give\TestData\Repositories\DonationFormRepository;
8 use WP_CLI;
9
10 /**
11 * Class FormSeedCommand
12 * @package Give\TestData\Commands
13 *
14 * A WP-CLI command to generate Donation Forms
15 */
16 class FormSeedCommand
17 {
18
19 /**
20 * @var DonationFormFactory
21 */
22 private $donationFormFactory;
23 /**
24 * @var DonationFormRepository
25 */
26 private $donationFormRepository;
27
28 public function __construct(
29 DonationFormFactory $donationFormFactory,
30 DonationFormRepository $donationFormRepository
31 ) {
32 $this->donationFormFactory = $donationFormFactory;
33 $this->donationFormRepository = $donationFormRepository;
34 }
35
36 /**
37 * Generate Donation Forms
38 *
39 * ## OPTIONS
40 *
41 * [--count=<count>]
42 * : Number of donations to generate
43 * default: 10
44 *
45 * [--template=<template>]
46 * : Form template
47 * default: random
48 * options:
49 * - sequoia
50 * - legacy
51 * - random
52 *
53 * [--set-goal=<bool>]
54 * : Set donation form goal
55 * default: false
56 *
57 * [--set-terms=<bool>]
58 * : Set donation form terms and conditions
59 * default: false
60 *
61 * [--preview=<preview>]
62 * : Preview generated data
63 * default: false
64 *
65 * [--consistent=<consistent>]
66 * : Generate consistent data
67 * default: false
68 *
69 * ## EXAMPLES
70 *
71 * wp give test-donation-form --count=10 --template=legacy --set-goal=true --set-terms=true
72 *
73 * @when after_wp_load
74 */
75 public function __invoke($args, $assocArgs)
76 {
77 global $wpdb;
78
79 // Get CLI args
80 $count = WP_CLI\Utils\get_flag_value($assocArgs, 'count', $default = 10);
81 $preview = WP_CLI\Utils\get_flag_value($assocArgs, 'preview', $default = false);
82 $template = WP_CLI\Utils\get_flag_value($assocArgs, 'template', $default = 'random');
83 $setGoal = WP_CLI\Utils\get_flag_value($assocArgs, 'set-goal', $default = false);
84 $setTerms = WP_CLI\Utils\get_flag_value($assocArgs, 'set-terms', $default = false);
85 $consistent = WP_CLI\Utils\get_flag_value($assocArgs, 'consistent', $default = false);
86
87 // Check form template
88 if ( ! $this->donationFormFactory->checkFormTemplate($template)) {
89 WP_CLI::error(
90 WP_CLI::colorize("Unsupported form template: %g{$template}%n")
91 );
92 }
93
94 // Factory config
95 $this->donationFormFactory->setFormTemplate($template);
96 $this->donationFormFactory->setDonationFormGoal($setGoal);
97 $this->donationFormFactory->setTermsAndConditions($setTerms);
98
99 // Generate donation forms
100 $forms = $this->donationFormFactory->consistent($consistent)->make($count);
101
102 if ($preview) {
103 WP_CLI\Utils\format_items(
104 'table',
105 $forms,
106 array_keys($this->donationFormFactory->definition())
107 );
108 } else {
109 $progress = WP_CLI\Utils\make_progress_bar('Generating donation forms', $count);
110
111 // Start DB transaction
112 $wpdb->query('START TRANSACTION');
113
114 try {
115 foreach ($forms as $form) {
116 $this->donationFormRepository->insertDonationForm($form);
117 $progress->tick();
118 }
119
120 $wpdb->query('COMMIT');
121
122 $progress->finish();
123 } catch (Exception $e) {
124 $wpdb->query('ROLLBACK');
125
126 WP_CLI::error($e->getMessage());
127 }
128 }
129 }
130
131 }
132