Created
January 12, 2012 18:15
-
-
Save ilarrain/1602162 to your computer and use it in GitHub Desktop.
Patch for "Clean Admin Bar Removal" WordPress plugin to list all roles, not just the prefixed ones.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff -u clean-admin-bar-removal.orig/clean-admin-bar-removal.php clean-admin-bar-removal/clean-admin-bar-removal.php | |
--- clean-admin-bar-removal.orig/clean-admin-bar-removal.php 2012-01-09 16:30:32.000000000 -0300 | |
+++ clean-admin-bar-removal/clean-admin-bar-removal.php 2012-01-12 16:35:15.672661150 -0300 | |
@@ -26,6 +26,7 @@ | |
// Show settings page and make changes on save | |
function clean_admin_bar_settings_page() { | |
+ global $wp_roles; | |
$clean_admin_bar_removal_default_roles = get_option('clean_admin_bar_removal_default_roles'); | |
if (!$clean_admin_bar_removal_default_roles) $clean_admin_bar_removal_default_roles = array(); | |
?> | |
@@ -60,19 +61,15 @@ | |
<form name='clean_admin_bar_settings' id='clean_admin_bar_settings' method='post' action=''> | |
<p>Turn off the admin bar for <strong>existing users</strong> with the following user roles: </p> | |
<fieldset> | |
- <p><label><input type='checkbox' name='clean_admin_bar_turn_off[]' value='administrator' /> Administrator</label></p> | |
- <p><label><input type='checkbox' name='clean_admin_bar_turn_off[]' value='editor' /> Editor</label></p> | |
- <p><label><input type='checkbox' name='clean_admin_bar_turn_off[]' value='author' /> Author</label></p> | |
- <p><label><input type='checkbox' name='clean_admin_bar_turn_off[]' value='contributor' /> Contributor</label></p> | |
- <p><label><input type='checkbox' name='clean_admin_bar_turn_off[]' value='subscriber' /> Subscriber</label></p> | |
+ <?php foreach( $wp_roles->role_names as $role => $name ) { ?> | |
+ <p><label><input type='checkbox' name='clean_admin_bar_turn_off[]' value='<?php echo $role ?>' /> <?php echo $name ?></label></p> | |
+ <?php } ?> | |
</fieldset> | |
<p>Disable admin bar by default for <strong>new users</strong> with the following user roles: </p> | |
<fieldset> | |
- <p><label><input type='checkbox' name='clean_admin_bar_turn_off_by_default[]' value='administrator' <?php if (in_array('administrator',$clean_admin_bar_removal_default_roles)) echo ' checked="checked";' ?>/> Administrator</label></p> | |
- <p><label><input type='checkbox' name='clean_admin_bar_turn_off_by_default[]' value='editor' <?php if (in_array('editor',$clean_admin_bar_removal_default_roles)) echo ' checked="checked";' ?>/> Editor</label></p> | |
- <p><label><input type='checkbox' name='clean_admin_bar_turn_off_by_default[]' value='author' <?php if (in_array('author',$clean_admin_bar_removal_default_roles)) echo ' checked="checked";' ?>/> Author</label></p> | |
- <p><label><input type='checkbox' name='clean_admin_bar_turn_off_by_default[]' value='contributor' <?php if (in_array('contributor',$clean_admin_bar_removal_default_roles)) echo ' checked="checked";' ?>/> Contributor</label></p> | |
- <p><label><input type='checkbox' name='clean_admin_bar_turn_off_by_default[]' value='subscriber'<?php if (in_array('subscriber',$clean_admin_bar_removal_default_roles)) echo ' checked="checked";' ?> /> Subscriber</label></p> | |
+ <?php foreach( $wp_roles->role_names as $role => $name ) { ?> | |
+ <p><label><input type='checkbox' name='clean_admin_bar_turn_off_by_default[]' value='<?php echo $role ?>' <?php if (in_array($role,$clean_admin_bar_removal_default_roles)) echo ' checked="checked";' ?>/> <?php echo $name ?></label></p> | |
+ <?php } ?> | |
</fieldset> | |
<br /> | |
<p> <input type="submit" id="submit" value="Save Changes" class="button-primary" /> </p> <br /> | |
@@ -95,14 +92,13 @@ | |
// Function to get user role string by user ID | |
function clean_admin_bar_get_user_role($user_ID) { | |
- global $wpdb; | |
- $metaname = $wpdb->prefix."capabilities"; | |
- $capabilities = get_user_meta($user_ID, $metaname, true); | |
- if ($capabilities['administrator']) return "administrator"; | |
- if ($capabilities['editor']) return "editor"; | |
- if ($capabilities['author']) return "author"; | |
- if ($capabilities['contributor']) return "contributor"; | |
- if ($capabilities['subscriber']) return "subscriber"; | |
+ $user = new WP_User( $user_ID ); | |
+ | |
+ if ( !empty( $user->roles ) && is_array( $user->roles ) ) { | |
+ $user_roles = $user->roles; | |
+ $user_role = array_shift($user_roles); | |
+ return $user_role; | |
+ } | |
return false; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment