Skip to content

Instantly share code, notes, and snippets.

@ilarrain
Created January 12, 2012 18:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ilarrain/1602162 to your computer and use it in GitHub Desktop.
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.
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