Enviar email para Admin quando o usuário / membro atualiza dados específicos de usuário / membro

Eu já perguntei sobre como enviar automaticamente e-mail para Admin quando um usuário / membro muda seus dados de perfil. E obteve algumas respostas muito boas. Enviar correio automático para Admin quando o usuário / membro muda / adiciona perfil

Agora, um acompanhamento: eu só quero enviar / enviar e-mail os dados (perfilados) que foram atualizados / adicionados.

Solutions Collecting From Web of "Enviar email para Admin quando o usuário / membro atualiza dados específicos de usuário / membro"

Então, como observa Bainternet, você precisaria comparar o novo valor do campo com o que era certo antes da edição. Em essência, você precisará criar version control para os campos de perfil. Você precisará adicionar uma tabela de database para armazenar essa informação, usando o object $wpdb para escrever e ler a partir dele.

Basicamente, em personal_options_update e edit_user_profile_update você irá obter os dados como na resposta anterior, mas também compará-lo com sua tabela armazenando o que existia no saldo anterior. Você só enviará os dados de um campo específico se houver desajustes.

Aqui está uma versão modificada sobre o trabalho de outros, aqui . Esta instância envia um email se o campo de e-mail do usuário tiver sido alterado. Troque ‘user_email’ com qualquer meta do usuário que você gosta.

 add_action( 'personal_options_update', 'notify_admin_on_update' ); add_action( 'edit_user_profile_update','notify_admin_on_update'); function notify_admin_on_update(){ global $current_user; get_currentuserinfo(); if (!current_user_can( 'administrator' )){// avoid sending emails when admin is updating user profiles $to = 'email@example.com';//change this email to whatever $subject = 'A user has updated their profile';//sent email subject field $message = "The user : " .$current_user->display_name . " has updated their email to: " .$current_user->user_email.""; wp_mail( $to, $subject, $message);//the code that sends the message } }