BBP_Users_Admin::user_role_bulk_change()

Process bulk dropdown form submission from the WordPress Users Table


Description Description


Return Return

(bool) Always false


Top ↑

Source Source

File: includes/admin/users.php

	public function user_role_bulk_change() {

		// Bail if no users specified
		if ( empty( $_REQUEST['users'] ) ) {
			return;
		}

		// Bail if this isn't a bbPress action
		if ( ( empty( $_REQUEST['bbp-new-role'] ) && empty( $_REQUEST['bbp-new-role2'] ) ) || ( empty( $_REQUEST['bbp-change-role'] ) && empty( $_REQUEST['bbp-change-role2'] ) ) ) {
			return;
		}

		$new_role = false;
		if ( ! empty( $_REQUEST['bbp-change-role2'] ) && ! empty( $_REQUEST['bbp-new-role2'] ) ) {
			$new_role = $_REQUEST['bbp-new-role2'];
		} elseif ( ! empty( $_REQUEST['bbp-change-role'] ) && ! empty( $_REQUEST['bbp-new-role'] ) ) {
			$new_role = $_REQUEST['bbp-new-role'];
		}

		// Check that the new role exists
		$dynamic_roles = bbp_get_dynamic_roles();
		if ( ! $new_role || empty( $dynamic_roles[ $new_role ] ) ) {
			return;
		}

		// Bail if nonce check fails
		check_admin_referer( 'bbp-bulk-users', 'bbp-bulk-users-nonce' );

		// Bail if current user cannot promote users
		if ( ! current_user_can( 'promote_users' ) ) {
			return;
		}

		// Get the current user ID
		$current_user_id = (int) bbp_get_current_user_id();

		// Run through user ids
		foreach ( (array) $_REQUEST['users'] as $user_id ) {
			$user_id = (int) $user_id;

			// Don't let a user change their own role
			if ( $user_id === $current_user_id ) {
				continue;
			}

			// Set up user and role data
			$user_role = bbp_get_user_role( $user_id );
			$new_role  = sanitize_text_field( $new_role );

			// Only keymasters can set other keymasters
			if ( in_array( bbp_get_keymaster_role(), array( $user_role, $new_role ), true ) && ! bbp_is_user_keymaster() ) {
				continue;
			}

			// Set the new forums role
			if ( $new_role !== $user_role ) {
				bbp_set_user_role( $user_id, $new_role );
			}
		}
	}

Top ↑

Changelog Changelog

Changelog
Version Description
2.2.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.