View difference between Paste ID: XP1jNpx7 and bnnAH7ix
SHOW: | | - or go back to the newest paste.
1
<?php
2
/*
3
 * example usage: $results = reset_role_WPSE_82378( 'subscriber' );
4
 * per add_role() (WordPress Codex), $results "Returns a WP_Role object
5
 * on success, null if that role already exists."
6
 *
7
 * possible $role values:
8
 * 'administrator'
9
 * 'editor'
10
 * 'author'
11
 * 'contributor'
12
 * 'subscriber'
13
 */
14
function reset_role_akrr( $role ) {
15
	$default_roles = array(
16
		'administrator' => array(
17
			'switch_themes' => 1,
18
			'edit_themes' => 1,
19
			'activate_plugins' => 1,
20
			'edit_plugins' => 1,
21
			'edit_users' => 1,
22
			'edit_files' => 1,
23
			'manage_options' => 1,
24
			'moderate_comments' => 1,
25
			'manage_categories' => 1,
26
			'manage_links' => 1,
27
			'upload_files' => 1,
28
			'import' => 1,
29
			'unfiltered_html' => 1,
30
			'edit_posts' => 1,
31
			'edit_others_posts' => 1,
32
			'edit_published_posts' => 1,
33
			'publish_posts' => 1,
34
			'edit_pages' => 1,
35
			'read' => 1,
36
			'level_10' => 1,
37
			'level_9' => 1,
38
			'level_8' => 1,
39
			'level_7' => 1,
40
			'level_6' => 1,
41
			'level_5' => 1,
42
			'level_4' => 1,
43
			'level_3' => 1,
44
			'level_2' => 1,
45
			'level_1' => 1,
46
			'level_0' => 1,
47
			'edit_others_pages' => 1,
48
			'edit_published_pages' => 1,
49
			'publish_pages' => 1,
50
			'delete_pages' => 1,
51
			'delete_others_pages' => 1,
52
			'delete_published_pages' => 1,
53
			'delete_posts' => 1,
54
			'delete_others_posts' => 1,
55
			'delete_published_posts' => 1,
56
			'delete_private_posts' => 1,
57
			'edit_private_posts' => 1,
58
			'read_private_posts' => 1,
59
			'delete_private_pages' => 1,
60
			'edit_private_pages' => 1,
61
			'read_private_pages' => 1,
62
			'delete_users' => 1,
63
			'create_users' => 1,
64
			'unfiltered_upload' => 1,
65
			'edit_dashboard' => 1,
66
			'update_plugins' => 1,
67
			'delete_plugins' => 1,
68
			'install_plugins' => 1,
69
			'update_themes' => 1,
70
			'install_themes' => 1,
71
			'update_core' => 1,
72
			'list_users' => 1,
73
			'remove_users' => 1,
74
			'add_users' => 1,
75
			'promote_users' => 1,
76
			'edit_theme_options' => 1,
77
			'delete_themes' => 1,
78
			'export' => 1,
79
		),
80
		'editor' => array(
81
			'moderate_comments' => 1,
82
			'manage_categories' => 1,
83
			'manage_links' => 1,
84
			'upload_files' => 1,
85
			'unfiltered_html' => 1,
86
			'edit_posts' => 1,
87
			'edit_others_posts' => 1,
88
			'edit_published_posts' => 1,
89
			'publish_posts' => 1,
90
			'edit_pages' => 1,
91
			'read' => 1,
92
			'level_7' => 1,
93
			'level_6' => 1,
94
			'level_5' => 1,
95
			'level_4' => 1,
96
			'level_3' => 1,
97
			'level_2' => 1,
98
			'level_1' => 1,
99
			'level_0' => 1,
100
			'edit_others_pages' => 1,
101
			'edit_published_pages' => 1,
102
			'publish_pages' => 1,
103
			'delete_pages' => 1,
104
			'delete_others_pages' => 1,
105
			'delete_published_pages' => 1,
106
			'delete_posts' => 1,
107
			'delete_others_posts' => 1,
108
			'delete_published_posts' => 1,
109
			'delete_private_posts' => 1,
110
			'edit_private_posts' => 1,
111
			'read_private_posts' => 1,
112
			'delete_private_pages' => 1,
113
			'edit_private_pages' => 1,
114
			'read_private_pages' => 1,
115
		),
116
		'author' => array(
117
			'upload_files' => 1,
118
			'edit_posts' => 1,
119
			'edit_published_posts' => 1,
120
			'publish_posts' => 1,
121
			'read' => 1,
122
			'level_2' => 1,
123
			'level_1' => 1,
124
			'level_0' => 1,
125
			'delete_posts' => 1,
126
			'delete_published_posts' => 1,
127
		),
128
		'contributor' => array(
129
			'edit_posts' => 1,
130
			'read' => 1,
131
			'level_1' => 1,
132
			'level_0' => 1,
133
			'delete_posts' => 1,
134
		),
135
		'subscriber' => array(
136
			'read' => 1,
137
			'level_0' => 1,
138
		),
139
		'display_name' => array(
140
			'administrator' => 'Administrator',
141
			'editor'		=> 'Editor',
142
			'author'		=> 'Author',
143
			'contributor'   => 'Contributor',
144
			'subscriber'	=> 'Subscriber',
145
		),
146
	);
147
	$role = strtolower( $role );
148
	remove_role( $role );
149
	return add_role( $role, $default_roles['display_name'][$role], $default_roles[$role] );
150
} // function reset_role_akrr
151
152-
add_action( 'init', 'reset_role_akrr' );
152+
add_action( 'init', function() {
153
	reset_role_akrr('administrator');
154
} );