Automatic email message after manual user approval

First, add a custom Action Hook that is triggered whenever the user is updated.

For example, when custom meta fields are updated in WordPress, some action hooks such as: updated_{$meta_type}_meta, updated_postmeta, etc.

So if you’re using the ACF plugin, you can hook into the ‘acf/save_post’ action hook. The action hook lets you do something before or after the custom field are being updated. For more info on using the acf/save_post, click here.

Next, you can now send the email to the user using the wp_mail() function.

Based on the code you have provided, I made some refactoring:

add_action(‘acf/save_post’, ‘my_save_post’);

function my_save_post( $post_id ) {

// create some logic here to check if you are editing a user
// Keep an eye on this pagenow check to see if it's correct
// Use wp_die( var_dump( $pagenow ); to debug
global $pagenow;
if ($pagenow == ‘user-edit.php’) {

//get the value of the field
$value = get_field(‘login_allowed’,$post_id);

// Remove this, just here for debugging
// wp_die( var_dump( $value ) );

// check if the checkbox is filled
if ( $value == 'unchecked' ) {
        return false;
}

        // Company information
        $email = “removed”;
        $name = “removed”;

        // Debug: I see $useremail variable, is it set somewhere?

        //get user's email
        $user = get_user_by('email', $useremail);
        if ($user) {
        $details['email'] = sanitize_email( $user->user_email );


        // email data
    $to = $useremail;
    $subject="The subject";
    $body = 'The email body content';
    $headers = ‘From:‘ . $name . ‘ ’ . “\r\n”;

        // send email
        wp_mail($to, $subject, $body, $headers );

        }
      }
  }