PluginProbe
Bubble Menu – Floating Button Menu with Sticky Navigation / 4.0
Bubble Menu – Floating Button Menu with Sticky Navigation v4.0
trunk 1.3 2.0 2.2 2.2.1 3.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1 3.1.1 4.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.1 4.1.1
bubble-menu / classes / Admin / ManageCapabilities.php

ManageCapabilities.php in Bubble Menu – Floating Button Menu with Sticky Navigation 4.0, at classes/Admin/ManageCapabilities.php

89 lines 2.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace BubbleMenu\Admin;
4
5 use BubbleMenu\WOWP_Plugin;
6 use WP_Roles;
7
8 defined( 'ABSPATH' ) || exit;
9
10 class ManageCapabilities {
11
12 public static function form(): void {
13 $current = self::get_capability();
14 ?>
15
16 <form method="post">
17 <div class="wpie-fieldset">
18 <div class="wpie-fields">
19 <div class="wpie-field" data-field-box="zindex">
20 <div class="wpie-field__title">Capabilities</div>
21 <label class="wpie-field__label">
22 <span class="screen-reader-text">Capabilities</span>
23 <select name="plugin_capability">
24 <?php foreach ( self::capabilities() as $capability ) {
25 echo '<option value="' . esc_attr( $capability ) . '"' . selected( $capability, $current, 0 ) . '>' . esc_attr( $capability ) . '</option>';
26 } ?>
27 </select>
28 </label>
29
30 </div>
31
32 <div class="wpie-action__btn">
33 <?php
34 submit_button( __( 'Save Change', 'bubble-menu' ), 'large', 'submit', false );
35 wp_nonce_field( WOWP_Plugin::PREFIX . '_nonce', WOWP_Plugin::PREFIX . '_capabilities' ); ?>
36 </div>
37 </div>
38 </div>
39 </form>
40
41 <?php
42 }
43
44 private static function capabilities(): array {
45 global $wp_roles;
46
47 if ( ! isset( $wp_roles ) ) {
48 $wp_roles = new WP_Roles();
49 }
50
51 $capabilities = array();
52
53 foreach ( $wp_roles->roles as $role ) {
54 foreach ( $role['capabilities'] as $cap => $enabled ) {
55 if ( $enabled ) {
56 $capabilities[] = $cap;
57 }
58 }
59 }
60
61 $capabilities = array_unique( $capabilities );
62 sort($capabilities);
63
64 return $capabilities;
65
66 }
67
68 public static function save(): bool {
69 $verify = AdminActions::verify( WOWP_Plugin::PREFIX . '_capabilities' );
70
71 if ( ! $verify ) {
72 return false;
73 }
74
75 if ( ! isset( $_POST['plugin_capability'] ) ) {
76 return false;
77 }
78
79 $capability = sanitize_text_field( $_POST['plugin_capability'] );
80
81 update_option( WOWP_Plugin::PREFIX . '_plugin_capabilities', $capability );
82
83 return true;
84 }
85
86 public static function get_capability() {
87 return get_option( WOWP_Plugin::PREFIX . '_plugin_capabilities', 'manage_options' );
88 }
89 }