PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 4.1.0
GiveWP – Donation Plugin and Fundraising Platform v4.1.0
4.16.8 4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 4.16.3 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 All 253 releases
give / src / TestData / Commands / LogsSeedCommand.php

LogsSeedCommand.php in GiveWP – Donation Plugin and Fundraising Platform 4.1.0, at src/TestData/Commands/LogsSeedCommand.php

91 lines 2.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Give\TestData\Commands;
4
5 use Give\Log\LogFactory;
6 use Give\TestData\Factories\LogFactory as TestDataLogFactory;
7 use WP_CLI;
8
9 /**
10 * Class LogsSeedCommand
11 * @package Give\TestData\Commands
12 *
13 * A WP-CLI command for seeding logs.
14 */
15 class LogsSeedCommand
16 {
17
18 /**
19 * @var TestDataLogFactory
20 */
21 private $testDataLogFactory;
22
23 public function __construct(TestDataLogFactory $testDataLogFactory)
24 {
25 $this->testDataLogFactory = $testDataLogFactory;
26 }
27
28 /**
29 * Generates GiveWP test logs
30 *
31 * [--count=<count>]
32 * : Number of logs to generate
33 * default: 10
34 *
35 * [--type=<type>]
36 * : Log type
37 * default: random
38 *
39 * [--category=<category>]
40 * : Log category
41 * default: Core
42 *
43 * [--source=<source>]
44 * : Log source
45 * default: Core
46 *
47 * [--preview=<preview>]
48 * : Preview generated data
49 * default: false
50 *
51 * ## EXAMPLES
52 *
53 * wp give test-demonstration-page --preview=true
54 *
55 * @when after_wp_load
56 */
57 public function __invoke($args, $assocArgs)
58 {
59 $count = WP_CLI\Utils\get_flag_value($assocArgs, 'count', $default = 10);
60 $type = WP_CLI\Utils\get_flag_value($assocArgs, 'type', $default = 'random');
61 $category = WP_CLI\Utils\get_flag_value($assocArgs, 'category', $default = 'Core');
62 $source = WP_CLI\Utils\get_flag_value($assocArgs, 'source', $default = 'Core');
63 $preview = WP_CLI\Utils\get_flag_value($assocArgs, 'preview', $default = false);
64
65 $this->testDataLogFactory->setLogType($type);
66 $this->testDataLogFactory->setLogCategory($category);
67 $this->testDataLogFactory->setLogSource($source);
68
69 $logs = $this->testDataLogFactory->make($count);
70
71 if ($preview) {
72 WP_CLI\Utils\format_items(
73 'table',
74 [$logs],
75 array_keys($this->testDataLogFactory->definition())
76 );
77 } else {
78 $progress = WP_CLI\Utils\make_progress_bar('Generating logs', 1);
79
80 foreach ($logs as $data) {
81 $log = LogFactory::makeFromArray($data);
82 $log->save();
83
84 $progress->tick();
85 }
86
87 $progress->finish();
88 }
89 }
90 }
91