Is there a simpler version of WP Media?

You can use ACF to do this. Set up your custom field for the user profile. Use the acf_form() to produce a form containing the field on your front end for the user to interact with. Customise your acf_form() arguments to use a “simple” uploader (this will not expose WP Media Library to users then) … Read more

Send email with custom fields after new draft is saved or new post published

I think you need to handle post request first. You have to do this because gutenberg calls the hook twice. function transition_post_status_handler( $new_status, $old_status, $post ) { if ( defined( ‘REST_REQUEST’ ) && REST_REQUEST ) { send_mail_on_publish( $new_status, $old_status, $post ); set_transient( ‘post_status_updater_flag’, ‘done’, 10 ); } else { if ( false === get_transient( ‘post_status_updater_flag’ … Read more