Users: Allow the role of users to be bulk changed to no role from the Users listing screen.

This option is already available when editing an individual user, but it was previously missing from the bulk actions.

Props bonniebeeman, sabernhardt, ovidiul, jeroenrotty

Fixes #52238


git-svn-id: https://develop.svn.wordpress.org/trunk@50228 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
John Blackbourn
2021-02-05 14:38:15 +00:00
parent 5629865595
commit a690358619
2 changed files with 10 additions and 0 deletions

View File

@@ -300,6 +300,7 @@ class WP_Users_List_Table extends WP_List_Table {
<select name="<?php echo $id; ?>" id="<?php echo $id; ?>">
<option value=""><?php _e( 'Change role to&hellip;' ); ?></option>
<?php wp_dropdown_roles(); ?>
<option value="none"><?php echo __( '&mdash; No role for this site &mdash;' ) ?> </option>
</select>
<?php
submit_button( __( 'Change' ), '', $button_id, false );

View File

@@ -114,10 +114,19 @@ switch ( $wp_list_table->current_action() ) {
$editable_roles = get_editable_roles();
$role = $_REQUEST['new_role'];
// Mocking the `none` role so we are able to save it to the database
$editable_roles['none'] = array(
'name' => __( '&mdash; No role for this site &mdash;' ),
);
if ( ! $role || empty( $editable_roles[ $role ] ) ) {
wp_die( __( 'Sorry, you are not allowed to give users that role.' ), 403 );
}
if ( 'none' === $role ) {
$role = '';
}
$userids = $_REQUEST['users'];
$update = 'promote';
foreach ( $userids as $id ) {