PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 2.0.12
Advanced Ads – Ad Manager & AdSense v2.0.12
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 / installation / class-capabilities.php
advanced-ads / includes / installation Last commit date
class-capabilities.php 1 year ago class-compatibility.php 1 year ago class-install.php 1 year ago class-uninstall.php 1 year ago index.php 1 year ago
class-capabilities.php
170 lines
1 <?php
2 /**
3 * The class is responsible for managing and registering capabilities in WordPress.
4 *
5 * @package AdvancedAds
6 * @author Advanced Ads <info@wpadvancedads.com>
7 * @since 1.47.0
8 */
9
10 namespace AdvancedAds\Installation;
11
12 defined( 'ABSPATH' ) || exit;
13
14 /**
15 * Capabilities manager.
16 */
17 class Capabilities {
18
19 /**
20 * Registered capabilities.
21 *
22 * @var array
23 */
24 private $capabilities = [];
25
26 /**
27 * Registered capabilities by role.
28 *
29 * @var array
30 */
31 private $role_capabilities = [];
32
33 /**
34 * The constructor
35 */
36 public function __construct() {
37 $this->register_defaults();
38 }
39
40 /**
41 * Set default capabilities.
42 *
43 * @return void
44 */
45 public function register_defaults(): void {
46 $this->register(
47 'advanced_ads_manage_options',
48 esc_html__( 'Allows changing plugin options', 'advanced-ads' ),
49 'administrator'
50 );
51
52 $this->register(
53 'advanced_ads_see_interface',
54 esc_html__( 'Allows access to the Advanced Ads backend', 'advanced-ads' ),
55 'administrator'
56 );
57
58 $this->register(
59 'advanced_ads_edit_ads',
60 esc_html__( 'Allows editing ads', 'advanced-ads' ),
61 'administrator'
62 );
63
64 $this->register(
65 'advanced_ads_manage_placements',
66 esc_html__( 'Allows changing the placements page', 'advanced-ads' ),
67 'administrator'
68 );
69
70 $this->register(
71 'advanced_ads_place_ads',
72 esc_html__( 'Enables shortcode button', 'advanced-ads' ),
73 'administrator'
74 );
75 }
76
77 /**
78 * Register a capability.
79 *
80 * @param string $capability Capability slug.
81 * @param string $title Capability title.
82 * @param array|string $roles Roles to assigned.
83 *
84 * @return void
85 */
86 public function register( $capability, $title, $roles ): void {
87 $this->capabilities[ $capability ] = $title;
88
89 foreach ( (array) $roles as $role ) {
90 $this->role_capabilities[ $role ] = $this->role_capabilities[ $role ] ?? [];
91 $this->role_capabilities[ $role ][] = $capability;
92 }
93 }
94
95 /**
96 * Get capabilities.
97 *
98 * @return array
99 */
100 public function get_capabilities(): array {
101 return $this->capabilities;
102 }
103
104 /**
105 * Create capabilities.
106 *
107 * @return void
108 */
109 public function create_capabilities(): void {
110 foreach ( $this->get_roles() as $role ) {
111 $this->loop_capabilities( $role, 'add_cap' );
112 }
113 }
114
115 /**
116 * Remove capabilities.
117 *
118 * @return void
119 */
120 public function remove_capabilities(): void {
121 foreach ( $this->get_roles() as $role ) {
122 $this->loop_capabilities( $role, 'remove_cap' );
123 }
124 }
125
126 /**
127 * Reset capabilities.
128 *
129 * @return void
130 */
131 public function reset_capabilities(): void {
132 $this->remove_capabilities();
133 $this->create_capabilities();
134 }
135
136 /**
137 * Get roles names
138 *
139 * @return array
140 */
141 private function get_roles(): array {
142 $roles = wp_roles();
143 return array_keys( $roles->get_names() );
144 }
145
146 /**
147 * Loop capabilities and perform action.
148 *
149 * @param string $role_slug Role slug.
150 * @param string $perform Action to perform.
151 *
152 * @return void
153 */
154 private function loop_capabilities( $role_slug, $perform ): void {
155 // Early bail!!
156 if ( ! isset( $this->role_capabilities[ $role_slug ] ) ) {
157 return;
158 }
159
160 $role = get_role( $role_slug );
161 if ( ! $role ) {
162 return;
163 }
164
165 foreach ( $this->role_capabilities[ $role_slug ] as $cap ) {
166 $role->$perform( $cap );
167 }
168 }
169 }
170