Guest User

Untitled

a guest
Sep 7th, 2022
885
1
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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.  
Advertisement
Add Comment
Please, Sign In to add comment