PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 2.0.24
Advanced Ads – Ad Manager & AdSense v2.0.24
2.0.24 2.0.23 2.0.22 2.0.21 1.38.0 1.39.0 1.39.1 1.39.2 1.39.3 1.39.4 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.40.0 1.40.1 1.40.2 1.41.0 1.42.0 1.42.1 1.42.2 1.43.0 1.44.0 1.44.1 1.45.0 1.45.1 1.46.0 1.47.0 1.47.1 1.47.2 1.47.3 1.47.4 1.47.5 1.48.0 1.48.1 1.49.0 1.5.0 1.5.0.1 1.5.1 1.5.2 1.5.2.1 1.5.4 1.5.4.1 1.5.5 1.50.0 1.51.0 1.51.1 1.51.2 1.51.3 1.52.0 1.52.1 1.52.2 1.52.3 1.52.4 1.53.0 1.53.1 1.53.2 1.54.0 1.54.1 1.55.0 1.56.0 1.56.1 1.56.2 1.56.3 1.56.4 1.6 1.6.1 1.6.10 1.6.10.1 1.6.10.2 1.6.11 1.6.11.1 1.6.12 1.6.13 1.6.14 1.6.15 1.6.16 1.6.17 1.6.17.1 1.6.17.2 1.6.2 1.6.2.1 1.6.3 1.6.4 1.6.4.1 1.6.5 1.6.6 1.6.6.1 1.6.7 1.6.7.1 1.6.8 1.6.8.1 1.6.8.2 1.6.8.3 1.6.9 1.6.9.1 1.6.9.2 1.6.9.3 1.6.9.4 1.7 1.7.0.1 1.7.0.2 1.7.0.3 1.7.1 1.7.1.1 1.7.1.2 1.7.1.3 1.7.1.4 1.7.1.5 1.7.10 trunk 1.7.11 1.0.1 1.7.12 1.0.2 1.7.13 1.0.3 1.7.14 1.1.0 1.7.15 1.1.1 1.7.16 1.1.2 1.7.17 1.1.3 1.7.18 1.10 1.7.19 1.10.1 1.7.2 1.10.10 1.7.2.1 1.10.11 1.7.20 1.10.12 1.7.21 1.10.2 1.7.22 1.10.3 1.7.23 1.10.4 1.7.24 1.10.5 1.7.25 1.10.6 1.7.3 1.10.7 1.7.4 1.10.8 1.7.4.1 1.10.9 1.7.4.2 1.11 1.7.4.3 1.11.1 1.7.4.4 1.11.2 1.7.4.5 1.12 1.7.5 1.13 1.7.5.1 1.13.1 1.7.6 1.13.2 1.7.7 1.13.3 1.7.8 1.13.4 1.7.9 1.13.5 1.7.9.1 1.13.6 1.7.9.2 1.13.7 1.7.9.3 1.13.8 1.8 1.14 1.8.1 1.14.1 1.8.10 1.14.10 1.8.11 1.14.11 1.8.12 1.14.2 1.8.13 1.14.3 1.8.14 1.14.4 1.8.15 1.14.5 1.8.16 1.14.6 1.8.17 1.14.7 1.8.18 1.14.8 1.8.19 1.14.9 1.8.2 1.15 1.8.20 1.16 1.8.21 1.16.1 1.8.22 1.17 1.8.23 1.17.1 1.8.24 1.17.10 1.8.25 1.17.10-rc.1 1.8.26 1.17.11 1.8.27 1.17.12 1.8.28 1.17.12-rc.1 1.8.29 1.17.2 1.8.3 1.17.3 1.8.30 1.17.4 1.8.4 1.17.5 1.8.5 1.17.6 1.8.6 1.17.7 1.8.7 1.17.8 1.8.8 1.17.9 1.8.9 1.17.9-beta.1 1.9 1.18.0 2.0.0 1.19.0 2.0.1 1.19.1 2.0.10 1.2 2.0.11 1.2.1 2.0.12 1.2.2 2.0.13 1.2.3 2.0.14 1.2.4 2.0.15 1.2.5 2.0.16 1.2.6 2.0.17 1.2.7 2.0.18 1.20.0 2.0.19 1.20.0-rc.1 2.0.2 1.20.0-rc.2 2.0.20 1.20.1 2.0.3 1.20.2 2.0.4 1.20.3 2.0.5 1.21.0 2.0.6 1.21.1 2.0.7 1.22.0 2.0.8 1.22.1 2.0.9 1.22.2 1.23.0 1.23.1 1.23.2 1.24.0 1.24.1 1.24.2 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.29.0 1.29.1 1.3 1.3.1 1.3.10 1.3.11 1.3.12 1.3.13 1.3.14 1.3.15 1.3.16 1.3.17 1.3.18 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.30.0 1.30.1 1.30.2 1.30.2-rc.1 1.30.3 1.30.4 1.30.4-rc.1 1.30.5 1.31.0 1.31.1 1.32.0 1.32.0-rc.1 1.33.0 1.33.1 1.33.2 1.34.0 1.35.0 1.35.1 1.36.0 1.36.1 1.36.2 1.36.3 1.37.0 1.37.1 1.37.2
advanced-ads / includes / compatibility / class-capability-manager.php
advanced-ads / includes / compatibility Last commit date
class-aawp-ad.php 1 week ago class-aawp.php 1 year ago class-admin-compatibility.php 1 week ago class-capability-manager.php 1 year ago class-compatibility.php 1 week ago class-inline-js.php 1 year ago class-peepso-ad.php 1 week ago class-peepso.php 1 week ago
class-capability-manager.php
158 lines
1 <?php
2 /**
3 * Integrates Advanced Ads capabilities with third party role manager plugins.
4 *
5 * @package AdvancedAds
6 * @author Advanced Ads <info@wpadvancedads.com>
7 * @since 1.50.0
8 */
9
10 namespace AdvancedAds\Compatibility;
11
12 use AdvancedAds\Constants;
13 use AdvancedAds\Installation\Capabilities;
14 use AdvancedAds\Framework\Interfaces\Integration_Interface;
15
16 defined( 'ABSPATH' ) || exit;
17
18 /**
19 * Capability Manager.
20 *
21 * Integrates with: Members
22 * Integrates with: User Role Editor
23 * Integrates with: PublishPress Capabilities
24 */
25 class Capability_Manager implements Integration_Interface {
26
27 /**
28 * Group name.
29 *
30 * @var string
31 */
32 const GROUP = 'advanced-ads';
33
34 /**
35 * Capability manager.
36 *
37 * @var Capabilities
38 */
39 private $capability_manager = null;
40
41 /**
42 * Hook into WordPress.
43 *
44 * @return void
45 */
46 public function hooks(): void {
47 $this->capability_manager = new Capabilities();
48
49 // Integrates with: Members.
50 add_action( 'members_register_caps', [ $this, 'register_members_caps' ] );
51 add_action( 'members_register_cap_groups', [ $this, 'register_members_groups' ] );
52
53 // Integrates with: User Role Editor.
54 add_filter( 'ure_capabilities_groups_tree', [ $this, 'register_ure_groups' ] );
55 add_filter( 'ure_custom_capability_groups', [ $this, 'register_ure_caps' ], 10, 2 );
56
57 // Integrates with: PublishPress Capabilities.
58 add_filter( 'cme_plugin_capabilities', [ $this, 'register_publishpress_caps' ] );
59 }
60
61 /**
62 * Get the name of the integration.
63 *
64 * @return string
65 */
66 public function get_name(): string {
67 return __( 'Advanced Ads', 'advanced-ads' );
68 }
69
70 /**
71 * Register Members groups.
72 *
73 * @return void
74 */
75 public function register_members_groups(): void {
76 members_register_cap_group(
77 self::GROUP,
78 [
79 'label' => $this->get_name(),
80 'priority' => 10,
81 'icon' => 'dashicons-editor-textcolor',
82 'caps' => array_keys( $this->capability_manager->get_capabilities() ),
83 ]
84 );
85
86 // Remove post types groups.
87 members_unregister_cap_group( 'type-' . Constants::POST_TYPE_AD );
88 members_unregister_cap_group( 'type-' . Constants::POST_TYPE_PLACEMENT );
89 }
90
91 /**
92 * Register members capabilities.
93 *
94 * @return void
95 */
96 public function register_members_caps(): void {
97 $capabilities = $this->capability_manager->get_capabilities();
98 foreach ( $capabilities as $cap => $label ) {
99 members_register_cap(
100 $cap,
101 [
102 'label' => $label,
103 'group' => self::GROUP,
104 ]
105 );
106 }
107 }
108
109 /**
110 * Register URE groups.
111 *
112 * @param array $groups Groups.
113 *
114 * @return array
115 */
116 public function register_ure_groups( array $groups ): array {
117 $groups = (array) $groups;
118
119 $groups[ self::GROUP ] = [
120 'caption' => $this->get_name(),
121 'parent' => 'custom',
122 'level' => 2,
123 ];
124
125 return $groups;
126 }
127
128 /**
129 * Register URE capabilities.
130 *
131 * @param array $groups Current capability groups.
132 * @param string $cap_id Capability identifier.
133 *
134 * @return array
135 */
136 public function register_ure_caps( $groups, $cap_id ): array {
137 if ( array_key_exists( $cap_id, $this->capability_manager->get_capabilities() ) ) {
138 $groups = (array) $groups;
139 $groups[] = self::GROUP;
140 }
141
142 return $groups;
143 }
144
145 /**
146 * Register PublishPress capabilities.
147 *
148 * @param array $caps Capabilities.
149 *
150 * @return array
151 */
152 public function register_publishpress_caps( array $caps ): array {
153 $caps[ $this->get_name() ] = array_keys( $this->capability_manager->get_capabilities() );
154
155 return $caps;
156 }
157 }
158