PluginProbe
Nested Pages / 3.2.7
Nested Pages v3.2.7
3.3.1 3.2.15 3.2.14 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 trunk 1.0 1.1 1.1.1 1.1.2 1.1.3 All 106 releases
wp-nested-pages / app / Entities / User / UserCapabilities.php
UserCapabilities.php
52 lines 1.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace NestedPages\Entities\User;
3
4 use NestedPages\Config\SettingsRepository;
5
6 /**
7 * Register custom user roles
8 */
9 class UserCapabilities
10 {
11 /**
12 * Settings Repository
13 */
14 private $settings;
15
16 public function __construct()
17 {
18 $this->settings = new SettingsRepository;
19 add_action('init', [$this, 'addSortingCapabilities']);
20 }
21
22 /**
23 * Adds custom capability of nestedpages_sort_$type
24 */
25 public function addSortingCapabilities()
26 {
27 $post_types = get_post_types(['public' => true]);
28 $invalid = ['attachment'];
29 $granted_roles = ['administrator'];
30 $roles = wp_roles();
31 foreach ( $post_types as $type ) :
32 if ( in_array($type, $invalid) ) continue;
33 foreach ( $roles->roles as $name => $role_obj ) :
34 $role = get_role($name);
35 $grant_capability = ( in_array($name, $granted_roles) ) ? true : false;
36 if ( $role->has_cap("nestedpages_sorting_$type") ) $grant_capability = true;
37
38 /**
39 * Filters the sorting capability for a given role and post type.
40 *
41 * @since 3.1.9
42 *
43 * @param bool $grant_role Whether role may sort post type.
44 * @param string $type The post type name.
45 * @param string $role_name The Role Name.
46 */
47 $grant_capability = apply_filters("nestedpages_sorting_capability", $grant_capability, $type, $role);
48 if ( $grant_capability ) $role->add_cap("nestedpages_sorting_$type", true);
49 endforeach;
50 endforeach;
51 }
52 }