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