PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 1.53.2
Advanced Ads – Ad Manager & AdSense v1.53.2
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-install.php 1 year ago class-uninstall.php 2 years ago
class-capabilities.php
182 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 * Instance
21 *
22 * @var object
23 */
24 protected static $instance;
25
26 /**
27 * Registered capabilities.
28 *
29 * @var array
30 */
31 private $capabilities = [];
32
33 /**
34 * Registered capabilities by role.
35 *
36 * @var array
37 */
38 private $role_capabilities = [];
39
40 /**
41 * The constructor
42 */
43 public function __construct() {
44 $this->register_defaults();
45 }
46
47 /**
48 * Get instance
49 *
50 * @return Capabilities
51 */
52 public static function get_instance() {
53 // If the single instance hasn't been set, set it now.
54 if ( null === self::$instance ) {
55 self::$instance = new self();
56 }
57
58 return self::$instance;
59 }
60
61 /**
62 * Set default capabilities.
63 *
64 * @return void
65 */
66 public function register_defaults(): void {
67 $this->register(
68 'advanced_ads_manage_options',
69 esc_html__( 'Allows changing plugin options', 'advanced-ads' ),
70 'administrator'
71 );
72
73 $this->register(
74 'advanced_ads_see_interface',
75 esc_html__( 'Allows access to the Advanced Ads backend', 'advanced-ads' ),
76 'administrator'
77 );
78
79 $this->register(
80 'advanced_ads_edit_ads',
81 esc_html__( 'Allows editing ads', 'advanced-ads' ),
82 'administrator'
83 );
84
85 $this->register(
86 'advanced_ads_manage_placements',
87 esc_html__( 'Allows changing the placements page', 'advanced-ads' ),
88 'administrator'
89 );
90
91 $this->register(
92 'advanced_ads_place_ads',
93 esc_html__( 'Enables shortcode button', 'advanced-ads' ),
94 'administrator'
95 );
96 }
97
98 /**
99 * Register a capability.
100 *
101 * @param string $capability Capability slug.
102 * @param string $title Capability title.
103 * @param array|string $roles Roles to assigned.
104 *
105 * @return void
106 */
107 public function register( $capability, $title, $roles ): void {
108 $this->capabilities[ $capability ] = $title;
109
110 foreach ( (array) $roles as $role ) {
111 $this->role_capabilities[ $role ] = $this->role_capabilities[ $role ] ?? [];
112 $this->role_capabilities[ $role ][] = $capability;
113 }
114 }
115
116 /**
117 * Create capabilities.
118 *
119 * @return void
120 */
121 public function create_capabilities(): void {
122 foreach ( $this->get_roles() as $role ) {
123 $this->loop_capabilities( $role, 'add_cap' );
124 }
125 }
126
127 /**
128 * Remove capabilities.
129 *
130 * @return void
131 */
132 public function remove_capabilities(): void {
133 foreach ( $this->get_roles() as $role ) {
134 $this->loop_capabilities( $role, 'remove_cap' );
135 }
136 }
137
138 /**
139 * Reset capabilities.
140 *
141 * @return void
142 */
143 public function reset_capabilities(): void {
144 $this->remove_capabilities();
145 $this->create_capabilities();
146 }
147
148 /**
149 * Get roles names
150 *
151 * @return array
152 */
153 private function get_roles(): array {
154 $roles = wp_roles();
155 return array_keys( $roles->get_names() );
156 }
157
158 /**
159 * Loop capabilities and perform action.
160 *
161 * @param string $role_slug Role slug.
162 * @param string $perform Action to perform.
163 *
164 * @return void
165 */
166 private function loop_capabilities( $role_slug, $perform ): void {
167 // Early bail!!
168 if ( ! isset( $this->role_capabilities[ $role_slug ] ) ) {
169 return;
170 }
171
172 $role = get_role( $role_slug );
173 if ( ! $role ) {
174 return;
175 }
176
177 foreach ( $this->role_capabilities[ $role_slug ] as $cap ) {
178 $role->$perform( $cap );
179 }
180 }
181 }
182