PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.0.13
Admin Columns v7.0.13
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 3 months ago BeaverBuilder.php 3 months ago BuddyPress.php 3 months ago EventsCalendar.php 3 months ago Filter.php 3 months ago GravityForms.php 3 months ago IntegrationRepository.php 3 months ago JetEngine.php 3 months ago MediaLibraryAssistant.php 3 months ago MetaBox.php 3 months ago Pods.php 3 months ago RankMath.php 3 months ago SeoPress.php 3 months ago Types.php 3 months ago WooCommerce.php 3 months ago YoastSeo.php 3 months ago
IntegrationRepository.php
104 lines
1 <?php
2
3 namespace AC\Integration;
4
5 use AC\Storage\Repository\IntegrationStatus;
6 use AC\Type\Integration;
7 use AC\Type\Integrations;
8
9 class IntegrationRepository
10 {
11
12 private IntegrationStatus $storage;
13
14 public function __construct(IntegrationStatus $storage)
15 {
16 $this->storage = $storage;
17 }
18
19 public function find_all(): Integrations
20 {
21 // Ordered by popularity
22 return new Integrations([
23 new ACF(),
24 new YoastSeo(),
25 new GravityForms(),
26 new WooCommerce(),
27 new EventsCalendar(),
28 new JetEngine(),
29 new MetaBox(),
30 new Types(),
31 new Pods(),
32 new BuddyPress(),
33 new RankMath(),
34 new SeoPress(),
35 new MediaLibraryAssistant(),
36 ]);
37 }
38
39 public function find(string $slug): ?Integration
40 {
41 foreach ($this->find_all() as $integration) {
42 if ($integration->get_slug() === $slug) {
43 return $integration;
44 }
45 }
46
47 return null;
48 }
49
50 public function find_all_inactive(): Integrations
51 {
52 $integrations = new Integrations();
53
54 foreach ($this->find_all() as $integration) {
55 if ( ! $this->is_active($integration)) {
56 $integrations->add($integration);
57 }
58 }
59
60 return $integrations;
61 }
62
63 public function find_all_active(): Integrations
64 {
65 $integrations = new Integrations();
66
67 foreach ($this->find_all() as $integration) {
68 if ($this->is_active($integration)) {
69 $integrations->add($integration);
70 }
71 }
72
73 return $integrations;
74 }
75
76 public function find_all_by_active_plugins(): Integrations
77 {
78 $integrations = new Integrations();
79
80 foreach ($this->find_all() as $integration) {
81 if ($integration->is_plugin_active()) {
82 $integrations->add($integration);
83 }
84 }
85
86 return $integrations;
87 }
88
89 private function is_enabled(Integration $integration): bool
90 {
91 return $this->storage->is_active($integration->get_slug());
92 }
93
94 private function is_integration_active(Integration $integration): bool
95 {
96 return (bool)apply_filters('ac/integration/active', false, $integration);
97 }
98
99 private function is_active(Integration $integration): bool
100 {
101 return $this->is_enabled($integration) && $this->is_integration_active($integration);
102 }
103
104 }