bp_members_migrate_signups()
Migrate signups from pre-2.0 configuration to wp_signups.
Description
Source
File: bp-members/bp-members-functions.php
function bp_members_migrate_signups() { global $wpdb; $status_2_ids = $wpdb->get_col( "SELECT ID FROM {$wpdb->users} WHERE user_status = '2'" ); if ( ! empty( $status_2_ids ) ) { $signups = get_users( array( 'fields' => array( 'ID', 'user_login', 'user_pass', 'user_registered', 'user_email', 'display_name', ), 'include' => $status_2_ids, ) ); // Fetch activation keys separately, to avoid the all_with_meta // overhead. $status_2_ids_sql = implode( ',', $status_2_ids ); $ak_data = $wpdb->get_results( "SELECT user_id, meta_value FROM {$wpdb->usermeta} WHERE meta_key = 'activation_key' AND user_id IN ({$status_2_ids_sql})" ); // Rekey. $activation_keys = array(); foreach ( $ak_data as $ak_datum ) { $activation_keys[ intval( $ak_datum->user_id ) ] = $ak_datum->meta_value; } unset( $status_2_ids_sql, $status_2_ids, $ak_data ); // Merge. foreach ( $signups as &$signup ) { if ( isset( $activation_keys[ $signup->ID ] ) ) { $signup->activation_key = $activation_keys[ $signup->ID ]; } } // Reset the signup var as we're using it to process the migration. unset( $signup ); } else { return; } foreach ( $signups as $signup ) { $meta = array(); // Rebuild the activation key, if missing. if ( empty( $signup->activation_key ) ) { $signup->activation_key = wp_generate_password( 32, false ); } if ( bp_is_active( 'xprofile' ) ) { $meta['field_1'] = $signup->display_name; } $meta['password'] = $signup->user_pass; $user_login = preg_replace( '/\s+/', '', sanitize_user( $signup->user_login, true ) ); $user_email = sanitize_email( $signup->user_email ); BP_Signup::add( array( 'user_login' => $user_login, 'user_email' => $user_email, 'registered' => $signup->user_registered, 'activation_key' => $signup->activation_key, 'meta' => $meta ) ); // Deleting these options will remove signups from users count. delete_user_option( $signup->ID, 'capabilities' ); delete_user_option( $signup->ID, 'user_level' ); } }
Changelog
Version | Description |
---|---|
BuddyPress 2.0.1 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.