View difference between Paste ID: aNgE7CwU and pQtXXYy4
SHOW: | | - or go back to the newest paste.
1
// Recursively delete a folder including all it's files and subfolders
2
// https://stackoverflow.com/a/18838141/701049
3
function recurseRmdir($dir) 
4
{
5
    $files = array_diff(scandir($dir), array('.','..'));
6
    foreach ($files as $file) {
7
        (is_dir("$dir/$file") && !is_link("$dir/$file")) 
8
            ? recurseRmdir("$dir/$file") : unlink("$dir/$file");
9
    }
10
    return rmdir($dir);
11
}
12
13
global $wpdb;
14
$user_ids = array_column(
15
                $wpdb->get_results('SELECT ID FROM ' . $wpdb->prefix . 'users', ARRAY_A), 
16
                'ID'
17
            );
18
$basefolders = array(
19
                trailingslashit(WP_CONTENT_DIR) . 'uploads/avatars/',
20
                trailingslashit(WP_CONTENT_DIR) . 'uploads/buddypress/members/'
21
               );
22
foreach($basefolders as $base)
23
{
24
    $uid_folders = array_diff(scandir($base), array('.', '..'));
25
    foreach($uid_folders as $uid) 
26
    {        
27
        if(is_numeric($uid) && is_dir($base .'/'. $uid) && !in_array($uid, $user_ids)) {
28
            recurseRmdir($base .'/'. $uid);
29
        }
30
    }
31
}
32