kundius

WP_edit_user_profile_avatar

Jun 19th, 2014
627
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.06 KB | None | 0 0
  1. function edit_user_profile_avatar($user_id) {
  2.     if ( !current_user_can( 'edit_user', $user_id ) )
  3.         return false;
  4.  
  5.     // Обновляем аватар
  6.     if(!empty($_FILES['avatar'])) {
  7.         $file = $_FILES['avatar'];
  8.         $ext = substr(strrchr(basename($file['name']),'.'), 1); // расширение файла
  9.         $filename = $user_id.'.'.$ext; // название файла
  10.  
  11.         $wp_upload_dir = wp_upload_dir();
  12.         $url_file = $wp_upload_dir['baseurl'].'/avatars/'.$filename;
  13.         $basedir = $wp_upload_dir['basedir'].'/avatars/';
  14.         $upload_file = $basedir.$filename;
  15.  
  16.         /* создаем папку с аватарами, если её не существует */
  17.         if (!is_dir($basedir)) {
  18.             mkdir($basedir, 0755, true);
  19.         }
  20.  
  21.         /* удаляем старый аватар, если он существует */
  22.         $avatar = get_the_author_meta('avatar', $user_id);
  23.         if(!empty($avatar)) {
  24.             unlink($basedir.basename($avatar));
  25.         }
  26.  
  27.         /* загружаем новый аватар и обновляем информацию */
  28.         if (move_uploaded_file($file['tmp_name'], $upload_file)) {
  29.             update_user_meta($user_id, 'avatar', $url_file);
  30.         }
  31.     }
  32.  
  33.     // Удаляем аватар
  34.     if(!empty($_POST['del_avatar'])) {
  35.         $wp_upload_dir = wp_upload_dir();
  36.         $basedir = $wp_upload_dir['basedir'].'/avatars/';
  37.  
  38.         /* удаляем старый аватар, если он существует */
  39.         $avatar = get_the_author_meta('avatar', $user_id);
  40.         if(!empty($avatar)) {
  41.             unlink($basedir.basename($avatar));
  42.             update_user_meta($user_id, 'avatar', ''); // очищаем поле
  43.         }
  44.     }
  45. }
  46. add_action('personal_options_update', 'edit_user_profile_avatar'); // Регистрируем хук-событие сохранения
  47. add_action('edit_user_profile_update', 'edit_user_profile_avatar'); // Регистрируем хук-событие сохранения
Advertisement
Add Comment
Please, Sign In to add comment