add_action( 'gform_after_create_post', 'gf_add_to_media_library', 10, 3 ); /** * Save file upload fields under custom post field to the library * * @param $post_id The post identifier * @param $entry The entry * @param $form The form */ function gf_add_to_media_library ( $post_id, $entry, $form ) { foreach($form['fields'] as $field){ //get media upload dir $uploads = wp_upload_dir(); $uploads_dir = $uploads['path']; $uploads_url = $uploads['url']; //if its a custom field with input type file upload. if( $field['type'] == 'post_custom_field' && $field['inputType'] == 'fileupload'){ $entry_id = $field['id']; $files = rgar ( $entry, $entry_id ); $custom_field = $field['postCustomFieldName']; //custom field key //if file field is not empty or not [] if ( $files !== '' && $files !== "[]"){ $patterns = ['[', ']', '"']; //get rid of crap $file_entry = str_replace($patterns, '', $files); $files = explode ( ',', $file_entry ); foreach ($files as $file) { //each file is a url //get the filename from end of url in match[1] $filename = pathinfo($file, PATHINFO_FILENAME); //add to media library //WordPress API for image uploads. include_once( ABSPATH . 'wp-admin/includes/image.php' ); include_once( ABSPATH . 'wp-admin/includes/file.php' ); include_once( ABSPATH . 'wp-admin/includes/media.php' ); $new_url = stripslashes($file); $result = media_sideload_image( $new_url, $post_id, $filename, 'src'); //saving the image to field or thumbnail if( strpos($field['cssClass'], 'thumb') === false ){ $attachment_ids[] = (int) get_attachment_id_from_src($result); } else{ set_post_thumbnail($post_id, (int) get_attachment_id_from_src($result) ); } } //end foreach file if ( isset( $attachment_ids ) ){ update_post_meta ($post_id, $custom_field, $attachment_ids); } } //end if files not empty } //end if custom field of uploadfile } } //end for each form field function get_attachment_id_from_src($image_src) { global $wpdb; $query = "SELECT ID FROM {$wpdb->posts} WHERE guid='$image_src'"; $id = $wpdb->get_var($query); return $id; }