Project

General

Profile

Feature #12447 » group-members-export-to-csv.php

Boone Gorges, 2020-09-23 11:08 AM

 
1
<?php
2

    
3
global $wpdb, $bp;
4

    
5
$gms = $wpdb->get_results( "SELECT * FROM {$bp->groups->table_name_members} WHERE is_banned = 0 AND is_confirmed = 1" );
6

    
7
$cols = [
8
	0 => 'user_id',
9
	1 => 'user_email',
10
	2 => 'group_name',
11
	3 => 'group_id',
12
];
13

    
14
$data_rows = array_map(
15
	function( $gm ) {
16
		$user  = get_userdata( $gm->user_id );
17
		$group = groups_get_group( $gm->group_id );
18

    
19
		return [
20
			0 => $user->ID,
21
			1 => $user->user_email,
22
			2 => $group->name,
23
			3 => $group->id
24
		];
25
	},
26
	$gms
27
);
28

    
29
$csv_path = ABSPATH . '/al-cop-group-members-' . date( 'Y-m-d' ) . '.csv';
30

    
31
$fh = fopen( $csv_path, 'w+' );
32

    
33
fprintf( $fh, chr(0xEF) . chr(0xBB) . chr(0xBF) );
34

    
35
fputcsv( $fh, $cols );
36

    
37
foreach ( $data_rows as $data_row ) {
38
	fputcsv( $fh, $data_row );
39
}
40

    
41
fclose( $fh );
42
die();
(1-1/2)