PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 2.4.6
Booking for Appointments and Events Calendar – Amelia v2.4.6
2.4.7 2.4.6 2.4.5 2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / vendor / melograno / usage-tracker / src / Collectors / BaseCollector.php
ameliabooking / vendor / melograno / usage-tracker / src / Collectors Last commit date
Common 2 months ago Plugin 2 months ago BaseCollector.php 2 months ago ConsentNoticeCollectorInterface.php 2 months ago PluginCollectorInterface.php 2 months ago
BaseCollector.php
68 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AmeliaVendor\Melograno\UsageTracker\Collectors;
6
7 use AmeliaVendor\Melograno\UsageTracker\Collectors\Common\ActivationCollector;
8 use AmeliaVendor\Melograno\UsageTracker\Collectors\Common\WpEnvironmentCollector;
9
10 abstract class BaseCollector implements PluginCollectorInterface
11 {
12 /** @var WpEnvironmentCollector */
13 private $environmentCollector;
14
15 /** @var ActivationCollector */
16 private $activationCollector;
17
18 public function __construct(
19 ?WpEnvironmentCollector $environmentCollector = null,
20 ?ActivationCollector $activationCollector = null
21 ) {
22 $this->environmentCollector = $environmentCollector ?? new WpEnvironmentCollector();
23 $this->activationCollector = $activationCollector ?? new ActivationCollector();
24 }
25
26 public function getCronHookName(): string
27 {
28 return self::cronHookNameForSlug($this->getPluginSlug());
29 }
30
31 public function getCronSchedule(): string
32 {
33 return 'weekly';
34 }
35
36 public static function cronHookNameForSlug(string $pluginSlug): string
37 {
38 return 'melograno_usage_tracker_' . $pluginSlug . '_send';
39 }
40
41 public function collect(): array
42 {
43 return [
44 'schema_version' => 1,
45 'sent_at' => gmdate('c'),
46 'plugin' => $this->getPluginSlug(),
47 'common' => $this->commonPayload(),
48 'plugin_data' => $this->pluginPayload(),
49 ];
50 }
51
52 /**
53 * @return array<string, mixed>
54 */
55 protected function commonPayload(): array
56 {
57 return [
58 'environment' => $this->environmentCollector->collect(),
59 'activation' => $this->activationCollector->collect(),
60 ];
61 }
62
63 /**
64 * @return array<string, mixed>
65 */
66 abstract protected function pluginPayload(): array;
67 }
68