Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
01/31/2017 08:42:48 PM (8 years ago)
Author:
r-a-y
Message:

Users Admin: Show profile field data on "Activate Pending Accounts" page.

This commit now displays the profile field data that the pending user
filled in so an administrator can make a better decision as to whether to
activate the user or not.

Props r-a-y, slaFFik, boonebgorges, DJPaul.

Fixes #7261.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-members/classes/class-bp-members-admin.php

    r11360 r11406  
    20412041        );
    20422042
     2043        // Prefetch registration field data.
     2044        $fdata = array();
     2045        if ( 'activate' === $action && bp_is_active( 'xprofile' ) ) {
     2046            $fields = bp_xprofile_get_groups( array(
     2047                'profile_group_id' => 1,
     2048                'exclude_fields' => 1,
     2049                'update_meta_cache' => false,
     2050                'fetch_fields' => true,
     2051            ) );
     2052            $fields = $fields[0]->fields;
     2053            foreach( $fields as $f ) {
     2054                $fdata[ $f->id ] = $f->name;
     2055            }
     2056        }
     2057
    20432058        ?>
    20442059
     
    20492064            <ol class="bp-signups-list">
    20502065            <?php foreach ( $signups as $signup ) :
    2051 
    2052                 $last_notified = mysql2date( 'Y/m/d g:i:s a', $signup->date_sent ); ?>
     2066                $last_notified = mysql2date( 'Y/m/d g:i:s a', $signup->date_sent );
     2067
     2068                // Get all xprofile field IDs except field 1.
     2069                $profile_field_ids = array_flip( explode( ',', $signup->meta['profile_field_ids'] ) );
     2070                unset( $profile_field_ids[1] );
     2071            ?>
    20532072
    20542073                <li>
    2055                     <?php echo esc_html( $signup->user_name ) ?> - <?php echo sanitize_email( $signup->user_email );?>
     2074                    <strong><?php echo esc_html( $signup->user_login ) ?></strong>
     2075
     2076                    <?php if ( 'activate' == $action ) : ?>
     2077                        <table class="wp-list-table widefat fixed striped">
     2078                            <tbody>
     2079                                <tr>
     2080                                    <td class="column-fields"><?php esc_html_e( 'Display Name', 'buddypress' ); ?></td>
     2081                                    <td><?php echo esc_html( $signup->user_name ); ?></td>
     2082                                </tr>
     2083
     2084                                <tr>
     2085                                    <td class="column-fields"><?php esc_html_e( 'Email', 'buddypress' ); ?></td>
     2086                                    <td><?php echo sanitize_email( $signup->user_email ); ?></td>
     2087                                </tr>
     2088
     2089                                <?php if ( bp_is_active( 'xprofile' ) && ! empty( $profile_field_ids ) ) : ?>
     2090                                    <?php foreach ( $profile_field_ids as $pid => $noop ) :
     2091                                        $field_value = isset( $signup->meta[ "field_{$pid}" ] ) ? $signup->meta[ "field_{$pid}" ] : ''; ?>
     2092                                        <tr>
     2093                                            <td class="column-fields"><?php echo esc_html( $fdata[ $pid ] ); ?></td>
     2094                                            <td><?php echo $this->format_xprofile_field_for_display( $field_value ); ?></td>
     2095                                        </tr>
     2096
     2097                                    <?php endforeach;  ?>
     2098
     2099                                <?php endif; ?>
     2100
     2101                            </tbody>
     2102                        </table>
     2103                    <?php endif; ?>
    20562104
    20572105                    <?php if ( 'resend' == $action ) : ?>
     
    23062354        }
    23072355    }
     2356
     2357    /**
     2358     * Formats a signup's xprofile field data for display.
     2359     *
     2360     * Operates recursively on arrays, which are then imploded with commas.
     2361     *
     2362     * @since 2.8.0
     2363     *
     2364     * @param string|array $value Field value.
     2365     * @return string
     2366     */
     2367    protected function format_xprofile_field_for_display( $value ) {
     2368        if ( is_array( $value ) ) {
     2369            $value = array_map( array( $this, 'format_xprofile_field_for_display' ), $value );
     2370            $value = implode( ', ', $value );
     2371        } else {
     2372            $value = stripslashes( $value );
     2373            $value = esc_html( $value );
     2374        }
     2375
     2376        return $value;
     2377    }
    23082378}
    23092379endif; // End class_exists check.
Note: See TracChangeset for help on using the changeset viewer.