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