Skip to:
Content

BuddyPress.org

Ticket #6060: 6060.patch

File 6060.patch, 11.4 KB (added by slaFFik, 4 years ago)

Some whitespace fixes

  • src/bp-core/bp-core-taxonomy.php

     
    2121 */
    2222function bp_register_default_taxonomies() {
    2323        // Member Type.
    24         register_taxonomy( 'bp_member_type', 'user', array(
     24        register_taxonomy( bp_get_member_type_tax_type(), 'user', array(
    2525                'public' => false,
    2626        ) );
    2727
  • src/bp-core/classes/class-bp-user-query.php

     
    780780
    781781                $tax_query = new WP_Tax_Query( array(
    782782                        array(
    783                                 'taxonomy' => 'bp_member_type',
     783                                'taxonomy' => bp_get_member_type_tax_type(),
    784784                                'field'    => 'name',
    785785                                'operator' => $operator,
    786786                                'terms'    => $types,
     
    788788                ) );
    789789
    790790                // Switch to the root blog, where member type taxonomies live.
    791                 $site_id  = bp_get_taxonomy_term_site_id( 'bp_member_type' );
     791                $site_id  = bp_get_taxonomy_term_site_id( bp_get_member_type_tax_type() );
    792792                $switched = false;
    793793                if ( $site_id !== get_current_blog_id() ) {
    794794                        switch_to_blog( $site_id );
  • src/bp-members/bp-members-cache.php

     
    2020function bp_members_prefetch_member_type( BP_User_Query $bp_user_query ) {
    2121        $uncached_member_ids = bp_get_non_cached_ids( $bp_user_query->user_ids, 'bp_member_member_type' );
    2222
    23         $member_types = bp_get_object_terms( $uncached_member_ids, 'bp_member_type', array(
     23        $member_types = bp_get_object_terms( $uncached_member_ids, bp_get_member_type_tax_type(), array(
    2424                'fields' => 'all_with_object_id',
    2525        ) );
    2626
  • src/bp-members/bp-members-functions.php

     
    25062506/** Member Types *************************************************************/
    25072507
    25082508/**
     2509 * Output the slug of the member type taxonomy.
     2510 *
     2511 * @since 2.7.0
     2512 */
     2513function bp_member_type_tax_type() {
     2514        echo bp_get_member_type_tax_type();
     2515}
     2516
     2517/**
     2518 * Return the slug of the member type taxonomy.
     2519 *
     2520 * @since 2.7.0
     2521 *
     2522 * @return string The unique member taxonomy slug.
     2523 */
     2524function bp_get_member_type_tax_type() {
     2525        /**
     2526         * Filters the slug of the member type taxonomy.
     2527         *
     2528         * @since 2.7.0
     2529         *
     2530         * @param string $value Member type taxonomy slug.
     2531         */
     2532        return apply_filters( 'bp_get_member_type_tax_type', 'bp_member_type' );
     2533}
     2534
     2535/**
    25092536 * Register a member type.
    25102537 *
    25112538 * @since 2.2.0
     
    26762703                return false;
    26772704        }
    26782705
    2679         $retval = bp_set_object_terms( $user_id, $member_type, 'bp_member_type', $append );
     2706        $retval = bp_set_object_terms( $user_id, $member_type, bp_get_member_type_tax_type(), $append );
    26802707
    26812708        // Bust the cache if the type has been updated.
    26822709        if ( ! is_wp_error( $retval ) ) {
     
    27122739                return false;
    27132740        }
    27142741
    2715         $deleted = bp_remove_object_terms( $user_id, $member_type, 'bp_member_type' );
     2742        $deleted = bp_remove_object_terms( $user_id, $member_type, bp_get_member_type_tax_type() );
    27162743
    27172744        // Bust the cache if the type has been removed.
    27182745        if ( ! is_wp_error( $deleted ) ) {
     
    27472774        $types = wp_cache_get( $user_id, 'bp_member_member_type' );
    27482775
    27492776        if ( false === $types ) {
    2750                 $types = bp_get_object_terms( $user_id, 'bp_member_type' );
     2777                $types = bp_get_object_terms( $user_id, bp_get_member_type_tax_type() );
    27512778
    27522779                if ( ! is_wp_error( $types ) ) {
    27532780                        $types = wp_list_pluck( $types, 'name' );
  • src/bp-members/classes/class-bp-members-admin.php

     
    215215                                add_filter( 'set-screen-option',    array( $this, 'signup_screen_options' ), 10, 3 );
    216216                        }
    217217                }
     218
     219                /** Users List - Members Types ***************************************
     220         */
     221
     222                if ( is_admin() && ! empty( buddypress()->members->types ) ) {
     223
     224                        // Change type UI and bulk processing.
     225                        add_action( 'restrict_manage_users', array( $this, 'users_type_change_to'   ) );
     226                        add_action( 'load-users.php',        array( $this, 'users_type_bulk_change' ) );
     227
     228                        // Display for each user its type in a row.
     229                        add_filter( 'manage_users_columns',       array( $this, 'users_type_column' )        );
     230                        add_filter( 'manage_users_custom_column', array( $this, 'users_type_row'    ), 10, 3 );
     231
     232                        // Filter users by type.
     233                        add_filter( 'pre_get_users', array( $this, 'users_type_process_filter_by' ) );
     234                }
    218235        }
    219236
    220237        /**
     
    19051922         * @since 2.0.0
    19061923         *
    19071924         * @param string $action Delete, activate, or resend activation link.
     1925         *
    19081926         * @return string
    19091927         */
    19101928        public function signups_admin_manage( $action = '' ) {
     
    20322050
    20332051                <?php
    20342052        }
     2053
     2054        /** Users List Management ****************************************************/
     2055
     2056        /**
     2057         * Display a dropdown to change the member type of selected user(s).
     2058         *
     2059         * @since 2.7.0
     2060         *
     2061         * @param string $which Where this dropdown is displayed - top or bottom.
     2062         */
     2063        public function users_type_change_to( $which ) {
     2064                $id_name = 'bottom' === $which ? 'bp_change_type2' : 'bp_change_type';
     2065
     2066                // Bail if current user cannot promote users
     2067                if ( ! current_user_can( 'promote_users' ) ) {
     2068                        return;
     2069                }
     2070
     2071                $types = buddypress()->members->types; ?>
     2072
     2073            <label class="screen-reader-text" for="bp_change_type"><?php _e( 'Change member type to&hellip;', 'buddypress' ) ?></label>
     2074            <select name="<?php echo $id_name; ?>" id="<?php echo $id_name; ?>" style="display:inline-block;float:none;">
     2075                <option value=""><?php _e( 'Change member type to&hellip;', 'buddypress' ) ?></option>
     2076
     2077                <?php foreach( $types as $type ) : ?>
     2078
     2079                                <option value="<?php echo esc_attr( $type->name ); ?>"><?php echo $type->labels['name']; ?></option>
     2080
     2081                <?php endforeach; ?>
     2082
     2083            </select>
     2084                <?php
     2085
     2086                submit_button( __( 'Change', 'buddypress' ), 'button', 'bp_change_member_type', false );
     2087
     2088        wp_nonce_field( 'bp-bulk-users-change-type', 'bp-bulk-users-change-type-nonce' );
     2089        }
     2090
     2091        /**
     2092         * Process bulk member type submission from the Users Table.
     2093         *
     2094         * @since 2.7.0
     2095         */
     2096        public function users_type_bulk_change() {
     2097                $this->users_type_change_notice();
     2098
     2099                // Bail if no users specified
     2100                if ( empty( $_REQUEST['users'] ) ) {
     2101                        return;
     2102                }
     2103
     2104                // Bail if this isn't a BuddyPress action.
     2105                if (
     2106                        ( empty( $_REQUEST['bp_change_type'] ) && empty( $_REQUEST['bp_change_type2'] ) ) ||
     2107                        empty( $_REQUEST['bp_change_member_type'] )
     2108                ) {
     2109                        return;
     2110                }
     2111
     2112                // Bail if nonce check fails.
     2113                check_admin_referer( 'bp-bulk-users-change-type', 'bp-bulk-users-change-type-nonce' );
     2114
     2115                // Bail if current user cannot promote users.
     2116                if ( ! current_user_can( 'promote_users' ) ) {
     2117                        return;
     2118                }
     2119
     2120                // Bail if the new type is empty.
     2121                $new_type = '';
     2122                if ( ! empty( $_REQUEST['bp_change_type2'] ) ) {
     2123                        $new_type = sanitize_text_field( $_REQUEST['bp_change_type2'] );
     2124                } elseif ( ! empty( $_REQUEST['bp_change_type'] ) ) {
     2125                        $new_type = sanitize_text_field( $_REQUEST['bp_change_type'] );
     2126                }
     2127                if ( empty( $new_type ) ) {
     2128                        return;
     2129                }
     2130
     2131                // Check that the selected type actually exists.
     2132                $types = buddypress()->members->types;
     2133                if ( empty( $types[ $new_type ] ) ) {
     2134                        return;
     2135                }
     2136
     2137                // Run through user ids.
     2138                foreach ( (array) $_REQUEST['users'] as $user_id ) {
     2139                        $user_id = (int) $user_id;
     2140
     2141                        // Get the old member type to check against.
     2142                        $user_type = bp_get_member_type( $user_id );
     2143
     2144                        // Set the new member type.
     2145                        if ( $new_type !== $user_type ) {
     2146                                $set = bp_set_member_type( $user_id, $new_type );
     2147
     2148                                // Lets assume, that everything is fine.
     2149                                if ( ! empty( $set ) && ! is_wp_error( $set ) ) {
     2150                                        $redirect = add_query_arg( array( 'updated' => 'member-type-change-success' ), wp_get_referer() );
     2151                                } else {
     2152                                        $redirect = add_query_arg( array( 'updated' => 'member-type-change-error' ), wp_get_referer() );
     2153                                }
     2154
     2155                                wp_redirect( $redirect );
     2156                                exit();
     2157                        }
     2158                }
     2159        }
     2160
     2161        /**
     2162         * Display an admin area notice upon member type bulk update.
     2163         *
     2164         * @since 2.7.0
     2165         */
     2166        public function users_type_change_notice() {
     2167                $updated = isset( $_REQUEST['updated'] ) ? $_REQUEST['updated'] : false;
     2168
     2169                // Display feedback.
     2170                if ( ! empty( $updated ) && in_array( $updated, array( 'member-type-change-error', 'member-type-change-success' ) ) ) {
     2171
     2172                        if ( 'member-type-change-error' === $updated ) {
     2173                                $notice = __( 'There was an error while changing member type. Please try again.', 'buddypress' );
     2174                        } else {
     2175                                $notice = __( 'Member type was successfully changed.', 'buddypress' );
     2176                        }
     2177
     2178                        bp_core_add_admin_notice( $notice );
     2179                }
     2180        }
     2181
     2182        /**
     2183         * Add Member Type column to the WordPress Users table.
     2184         *
     2185         * @since 2.7.0
     2186         *
     2187         * @param array $columns Users table columns.
     2188         *
     2189         * @return array $columns
     2190         */
     2191        public function users_type_column( $columns = array() ) {
     2192                $columns[ bp_get_member_type_tax_type() ] = __( 'Member Type', 'buddypress' );
     2193
     2194                return $columns;
     2195        }
     2196
     2197        /**
     2198         * Return member's type for display in the Users list table.
     2199         *
     2200         * @since 2.7.0
     2201         *
     2202         * @param string $retval
     2203         * @param string $column_name
     2204         * @param int $user_id
     2205         *
     2206         * @return string Displayable member type as a link to filter all users.
     2207         */
     2208        public function users_type_row( $retval = '', $column_name = '', $user_id = 0 ) {
     2209                // Only looking for member type column
     2210                if ( bp_get_member_type_tax_type() !== $column_name ) {
     2211                        return $retval;
     2212                }
     2213
     2214                // Get the member type.
     2215                $type   = bp_get_member_type( $user_id );
     2216                $retval = '';
     2217
     2218                // Translate user role for display.
     2219                if ( ! empty( $type ) ) {
     2220                        $types = buddypress()->members->types;
     2221
     2222                        if ( ! empty( $types[ $type ]->labels['singular_name'] ) ) {
     2223                                $url = add_query_arg( array( 'bp-member-type' => urlencode( $type ) ), wp_get_referer() );
     2224
     2225                                $retval = '<a href="' . esc_url( $url ) . '">' . translate_user_role( $types[ $type ]->labels['singular_name'] ) . '</a>';
     2226                        }
     2227                }
     2228
     2229                return $retval;
     2230        }
     2231
     2232        /*******************************************************************/
     2233
     2234        /**
     2235         * Filter in admin area on Users page those with a specified type.
     2236         *
     2237         * @param WP_Query $query
     2238         *
     2239         * @since 2.7.0
     2240         */
     2241        public function users_type_process_filter_by( $query ) {
     2242                global $pagenow;
     2243
     2244                if ( is_admin() && 'users.php' === $pagenow && ! empty( $_REQUEST['bp-member-type'] ) ) {
     2245                        $type_slug = sanitize_text_field( $_REQUEST['bp-member-type'] );
     2246
     2247                        // Check that the type actually exists.
     2248                        $types = buddypress()->members->types;
     2249                        if ( empty( $types[ $type_slug ] ) ) {
     2250                                return;
     2251                        }
     2252
     2253                        // Get the list of users, that are assigned to this member type.
     2254                        $type = get_term_by( 'slug', $type_slug, bp_get_member_type_tax_type() );
     2255
     2256                        if ( ! $type->term_id ) {
     2257                                return;
     2258                        }
     2259
     2260                        $user_ids = get_objects_in_term( $type->term_id, bp_get_member_type_tax_type() );
     2261
     2262                        if ( $user_ids && ! is_wp_error( $user_ids ) ) {
     2263                    $query->set( 'include', (array) $user_ids );
     2264                        }
     2265                }
     2266        }
    20352267}
    20362268endif; // End class_exists check.