PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.1.4
Admin Columns v7.1.4
7.1.4 7.0.19 2.3.5 2.4 2.4.1 2.4.10 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.6.1 2.5.6.2 2.5.6.3 2.5.6.4 3.0 3.0.1 3.0.2 3.0.3 3.0.5 3.0.7 3.1 3.1.1 3.1.10 3.1.2 3.1.3 3.1.5 3.2.3 3.2.7 3.3.1 3.4.1 3.4.6 3.4.8 4.0.1 4.0.3 4.1.6 4.2.2 4.2.5 4.3 4.3.2 4.4.1 4.4.4 4.4.5 4.5.5 4.6.1 4.7.18 4.7.19 4.7.20 4.7.7 7.0.13 7.0.14 7.0.16 trunk 1.0 1.1 1.1.3 1.2 1.2.1 1.3 1.3.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.5.1 1.4.6 1.4.6.1 1.4.6.2 1.4.6.3 1.4.6.4 1.4.7 1.4.8 1.4.9 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.2.1 2.2.1.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.5.1 2.2.6 2.2.6.1 2.2.6.2 2.2.6.3 2.2.6.4 2.2.7 2.2.8 2.2.8.1 2.2.9 2.3.1 2.3.2 2.3.3
codepress-admin-columns / classes / Integration / IntegrationRepository.php
codepress-admin-columns / classes / Integration Last commit date
ACF.php 1 day ago BeaverBuilder.php 1 day ago BuddyPress.php 1 day ago EventsCalendar.php 1 day ago Filter.php 1 day ago GravityForms.php 1 day ago IntegrationRepository.php 1 day ago JetEngine.php 1 day ago MediaLibraryAssistant.php 1 day ago MetaBox.php 1 day ago Pods.php 1 day ago RankMath.php 1 day ago SeoPress.php 1 day ago Types.php 1 day ago WooCommerce.php 1 day ago YoastSeo.php 1 day ago
IntegrationRepository.php
106 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\Integration;
6
7 use AC\Storage\Repository\IntegrationStatus;
8 use AC\Type\Integration;
9 use AC\Type\Integrations;
10
11 class IntegrationRepository
12 {
13 private IntegrationStatus $storage;
14
15 public function __construct(IntegrationStatus $storage)
16 {
17 $this->storage = $storage;
18 }
19
20 public function find_all(): Integrations
21 {
22 // Ordered by popularity
23 return new Integrations([
24 new ACF(),
25 new YoastSeo(),
26 new GravityForms(),
27 new WooCommerce(),
28 new EventsCalendar(),
29 new JetEngine(),
30 new MetaBox(),
31 new Types(),
32 new Pods(),
33 new BuddyPress(),
34 new RankMath(),
35 new SeoPress(),
36 new MediaLibraryAssistant(),
37 ]);
38 }
39
40 public function find(string $slug): ?Integration
41 {
42 foreach ($this->find_all() as $integration) {
43 if ($integration->get_slug() === $slug) {
44 return $integration;
45 }
46 }
47
48 return null;
49 }
50
51 public function find_all_inactive(): Integrations
52 {
53 $integrations = new Integrations();
54
55 foreach ($this->find_all() as $integration) {
56 if (! $this->is_active($integration)) {
57 $integrations->add($integration);
58 }
59 }
60
61 return $integrations;
62 }
63
64 public function find_all_active(): Integrations
65 {
66 $integrations = new Integrations();
67
68 foreach ($this->find_all() as $integration) {
69 if ($this->is_active($integration)) {
70 $integrations->add($integration);
71 }
72 }
73
74 return $integrations;
75 }
76
77 public function find_all_by_active_plugins(): Integrations
78 {
79 $integrations = new Integrations();
80
81 foreach ($this->find_all() as $integration) {
82 if ($integration->is_plugin_active()) {
83 $integrations->add($integration);
84 }
85 }
86
87 return $integrations;
88 }
89
90 private function is_enabled(Integration $integration): bool
91 {
92 return $this->storage->is_active($integration->get_slug());
93 }
94
95 private function is_integration_active(Integration $integration): bool
96 {
97 return (bool)apply_filters('ac/integration/active', false, $integration);
98 }
99
100 private function is_active(Integration $integration): bool
101 {
102 return $this->is_enabled($integration) && $this->is_integration_active($integration);
103 }
104
105 }
106