Skip to:
Content

bbPress.org

Ticket #2906: 2906.2.patch

File 2906.2.patch, 3.2 KB (added by ocean90, 4 years ago)

WP >= 4.6

  • src/includes/admin/users.php

     
    130130         * Add bulk forums role dropdown to the WordPress users table
    131131         *
    132132         * @since 2.2.0 bbPress (r4360)
     133         *
     134         * @param string $which The location of the extra table nav markup: 'top' or 'bottom'.
    133135         */
    134         public static function user_role_bulk_dropdown() {
     136        public static function user_role_bulk_dropdown( $which ) {
    135137
    136138                // Bail if current user cannot promote users
    137139                if ( ! current_user_can( 'promote_users' ) ) {
     
    144146                // Only keymasters can set other keymasters
    145147                if ( ! bbp_is_user_keymaster() ) {
    146148                        unset( $dynamic_roles[ bbp_get_keymaster_role() ] );
    147                 } ?>
     149                }
    148150
    149                 <label class="screen-reader-text" for="bbp-new-role"><?php esc_html_e( 'Change forum role to&hellip;', 'bbpress' ) ?></label>
    150                 <select name="bbp-new-role" id="bbp-new-role" style="display:inline-block; float:none;">
     151                $select_id = 'bottom' === $which ? 'bbp-new-role2' : 'bbp-new-role';
     152                $button_id = 'bottom' === $which ? 'bbp-change-role2' : 'bbp-change-role';
     153                ?>
     154
     155                <label class="screen-reader-text" for="<?php echo $select_id; ?>"><?php esc_html_e( 'Change forum role to&hellip;', 'bbpress' ) ?></label>
     156                <select name="<?php echo $select_id; ?>" id="<?php echo $select_id; ?>" style="display:inline-block; float:none;">
    151157                        <option value=''><?php esc_html_e( 'Change forum role to&hellip;', 'bbpress' ) ?></option>
    152158                        <?php foreach ( $dynamic_roles as $role => $details ) : ?>
    153159                                <option value="<?php echo esc_attr( $role ); ?>"><?php echo translate_user_role( $details['name'] ); ?></option>
    154160                        <?php endforeach; ?>
    155                 </select><?php submit_button( __( 'Change', 'bbpress' ), 'secondary', 'bbp-change-role', false );
     161                </select><?php submit_button( __( 'Change', 'bbpress' ), 'secondary', $button_id, false );
    156162
    157163                wp_nonce_field( 'bbp-bulk-users', 'bbp-bulk-users-nonce' );
    158164        }
     
    175181                }
    176182
    177183                // Bail if this isn't a bbPress action
    178                 if ( empty( $_REQUEST['bbp-new-role'] ) || empty( $_REQUEST['bbp-change-role'] ) ) {
     184                if ( ( empty( $_REQUEST['bbp-new-role'] ) && empty( $_REQUEST['bbp-new-role2'] ) ) || ( empty( $_REQUEST['bbp-change-role'] ) && empty( $_REQUEST['bbp-change-role2'] ) ) ) {
    179185                        return;
    180186                }
    181187
     188                $new_role = false;
     189                if ( ! empty( $_REQUEST['bbp-change-role2'] ) && ! empty( $_REQUEST['bbp-new-role2'] ) ) {
     190                        $new_role = $_REQUEST['bbp-new-role2'];
     191                } elseif ( ! empty( $_REQUEST['bbp-change-role'] ) && ! empty( $_REQUEST['bbp-new-role'] ) ) {
     192                        $new_role = $_REQUEST['bbp-new-role'];
     193                }
     194
    182195                // Check that the new role exists
    183196                $dynamic_roles = bbp_get_dynamic_roles();
    184                 if ( empty( $dynamic_roles[ $_REQUEST['bbp-new-role'] ] ) ) {
     197                if ( ! $new_role || empty( $dynamic_roles[ $new_role ] ) ) {
    185198                        return;
    186199                }
    187200
     
    207220
    208221                        // Set up user and role data
    209222                        $user_role = bbp_get_user_role( $user_id );
    210                         $new_role  = sanitize_text_field( $_REQUEST['bbp-new-role'] );
     223                        $new_role  = sanitize_text_field( $new_role );
    211224
    212225                        // Only keymasters can set other keymasters
    213226                        if ( in_array( bbp_get_keymaster_role(), array( $user_role, $new_role ) ) && ! bbp_is_user_keymaster() ) {