I don’t want to accidentally select Administrator role.
So is there a way to remove it from Settings -> General -> New User Default Role ?
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
Okay, this looks tricky, but I think it’s possible.
- The
user-new.phpfile callswp_dropdown_roles()to output the list of roles. - The
wp_dropdown_roles()function callsget_editable_roles()to get the list of roles to output. - The
get_editable_roles()function has a filter,editable_roles.
So, you should be able to add a filter for editable_roles, such that, if the current page is user-new.php, you unset administrator from $editable_roles.
Edit
It would be awesome if you can give me the code for my functions.php file.
This is completely untested, but should get you in the right direction. I’m assuming that $editable_roles is an array of user roles, e.g. array( 'subscriber', 'author', 'editor', 'administrator' ), but I’ve not verified.
<?php
function wpse_40897_filter_get_editable_roles_for_new_user( $editable_roles ) {
global $pagenow;
if ( 'user-new.php' == $pagenow ) {
unset( $editable_roles['administrator'] );
}
return $editable_roles;
}
add_filter( 'editable_roles', 'wpse_40897_filter_get_editable_roles_for_new_user' );
?>
Caveat: This isn’t turn-key code, but rather is merely example code. If you’re not comfortable grokking it to get where you need, then I wouldn’t recommend using it for copy-pasta.
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0