Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- add_action( 'user_edit_form_tag','make_uploadable_form');
- function make_uploadable_form() {
- echo ' enctype="multipart/form-data"';
- }
- add_action( 'show_user_profile', 'UploadField' );
- add_action( 'edit_user_profile', 'UploadField' );
- function UploadField( $user ) {
- if ( ! current_user_can( 'edit_user' ) )
- return false;
- $pid = get_user_meta( $user->ID, 'profile_photo', true );
- $img = wp_get_attachment_image( $pid );
- if ( ! empty( $img ) )
- echo( $img );
- ?>
- <h3>Extra profile information</h3>
- <table class="form-table">
- <tr>
- <th><label for="Upload">Upload</label></th>
- <td>
- <input name="profile_photo" type="file" id="profile_photo" value="" />
- </td>
- </table>
- <?php
- }
- add_action( 'personal_options_update', 'save_user_custom' );
- add_action( 'edit_user_profile_update', 'save_user_custom' );
- function save_user_custom($user_id){
- if($user_id == false)
- return false;
- // If the upload field has a file in it
- if(isset($_FILES['profile_photo'])){
- if(!function_exists('wp_handle_upload'))
- require_once(ABSPATH.'wp-admin/includes/file.php');
- // Get the type of the uploaded file. This is returned as "type/extension"
- $arr_file_type = wp_check_filetype(basename($_FILES['profile_photo']['name']));
- $uploaded_file_type = $arr_file_type['type'];
- // Set an array containing a list of acceptable formats
- $allowed_file_types = array('image/jpg','image/jpeg','image/gif','image/png');
- // If the uploaded file is the right format
- if(in_array($uploaded_file_type, $allowed_file_types)) {
- // Options array for the wp_handle_upload function. 'test_upload' => false
- $upload_overrides = array( 'test_form' => false );
- // Handle the upload using WP's wp_handle_upload function. Takes the posted file and an options array
- $uploaded_file = wp_handle_upload($_FILES['profile_photo'], $upload_overrides);
- // If the wp_handle_upload call returned a local path for the image
- if(isset($uploaded_file['file'])) {
- // The wp_insert_attachment function needs the literal system path, which was passed back from wp_handle_upload
- $file_name_and_location = $uploaded_file['file'];
- // Generate a title for the image that'll be used in the media library
- $file_title_for_media_library = 'your title here';
- // Set up options array to add this file as an attachment
- $attachment = array(
- 'post_mime_type' => $uploaded_file_type,
- 'post_title' => 'Uploaded image ' . addslashes($file_title_for_media_library),
- 'post_content' => '',
- 'post_status' => 'inherit'
- );
- // Run the wp_insert_attachment function. This adds the file to the media library and generates the thumbnails. If you wanted to attch this image to a post, you could pass the post id as a third param and it'd magically happen.
- $attach_id = wp_insert_attachment( $attachment, $file_name_and_location );
- require_once(ABSPATH . "wp-admin" . '/includes/image.php');
- $attach_data = wp_generate_attachment_metadata( $attach_id, $file_name_and_location );
- wp_update_attachment_metadata($attach_id, $attach_data);
- update_user_meta( $user_id, 'profile_photo', $attach_id );
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement