Here is the working code (working fine for me), did you tried this? Just add to theme ‘functions.php’ and change the custom field names as needed.
//function to add custom media field
function custom_media_add_media_custom_field( $form_fields, $post ) {
$field_value = get_post_meta( $post->ID, 'custom_media_style', true );
$form_fields['custom_media_style'] = array(
'value' => $field_value ? $field_value : '',
'label' => __( 'Style' ),
'helps' => __( 'Enter your style' ),
'input' => 'textarea'
);
return $form_fields;
}
add_filter( 'attachment_fields_to_edit', 'custom_media_add_media_custom_field', null, 2 );
//save your custom media field
function custom_media_save_attachment( $attachment_id ) {
if ( isset( $_REQUEST['attachments'][ $attachment_id ]['custom_media_style'] ) ) {
$custom_media_style = $_REQUEST['attachments'][ $attachment_id ]['custom_media_style'];
update_post_meta( $attachment_id, 'custom_media_style', $custom_media_style );
}
}
add_action( 'edit_attachment', 'custom_media_save_attachment' );