X

Como Enviar Notificação por E-mail Quando o Papel do Usuário é Alterado no WordPress

Snippets por IsItWP

Você está procurando uma maneira de enviar notificações por e-mail para usuários do WordPress quando o papel deles for alterado? Embora provavelmente exista um plugin para isso, criamos um pequeno trecho de código que você pode usar para enviar notificações por e-mail para membros quando o papel deles foi alterado no WordPress.

Instruções:

Tudo o que você precisa fazer é adicionar este código ao arquivo functions.php do seu tema ou a um plugin específico do site:

function user_role_update( $user_id, $new_role ) {
        $site_url = get_bloginfo('wpurl');
        $user_info = get_userdata( $user_id );
        $to = $user_info->user_email; 
        $subject = "Role changed: ".$site_url."";
        $message = "Hello " .$user_info->display_name . " your role has changed on ".$site_url.", congratulations you are now an " . $new_role;
        wp_mail($to, $subject, $message);
}
add_action( 'set_user_role', 'user_role_update', 10, 2);

Observação: Se esta é a primeira vez que você adiciona trechos de código no WordPress, consulte nosso guia sobre como copiar / colar trechos de código corretamente no WordPress, para não quebrar acidentalmente seu site.

Se você gostou deste trecho de código, considere conferir nossos outros artigos no site como: 62 melhores temas gratuitos de blog WordPress e 7 melhores plugins de formulário de contato WordPress.

Comentários   Deixe uma resposta

  1. como uso tags HTML aqui?
    quero deixar o texto em negrito
    $message = “Olá ” .$user_info->display_name . ” seu cargo mudou em “.$site_url.”, parabéns você agora é um ” . $new_role;

    1. Você poderia tentar usar este código para essa linha:

      $message = “Olá ” .$user_info->display_name . ” seu papel foi alterado em “.$site_url.”, parabéns você agora é um ” . $new_role . ““;

  2. Perfeito 👍
    Muito obrigado 👏

  3. Seu artigo me ajudou, mas também envia e-mail para novos registros. Quero usar seu código para dois papéis para os quais quero mensagens personalizadas. Este código funcionaria para isso?

    1. O código precisaria ser modificado para verificar o valor de $new_role.

  4. Usei este código, mas nenhum e-mail foi recebido quando mudei meu papel

  5. este funciona e não envia e-mail se for um novo registro

    function user_role_update( $user_id, $new_role ) {

    if ($new_role == “customer”) {}

    elseif ($new_role == “role1″||”role2”) {

    $site_url = get_bloginfo(‘wpurl’);
    $user_info = get_userdata( $user_id );
    $to = $user_info->user_email;
    $subject = “Sua conta foi validada. Agora você pode começar a comprar em 1223.com”;
    $message = “Bem-vindo ” .$user_info->display_name . “! mensagem .” ;
    wp_mail($to, $subject, $message);
    }}

    add_action( ‘set_user_role’, ‘user_role_update’, 10, 2);

  6. Isso foi super útil! Obrigado!

  7. Mariusz Szatkowski October 31, 2013 at 6:59 am

    Olá,

    1. Obrigado pelo trecho – mas eu quero notificar o usuário apenas quando o cargo de um usuário existente for alterado.

    Agora o script envia um e-mail quando um novo usuário é adicionado ao WP.

    2. Seria mais preciso enviar o nome do cargo (agora ele envia o slug)

    Alguma ideia?

    Obrigado

    1. Olá, você recebeu o trecho? Se possível, você poderia me compartilhar o link também? Porque estou enfrentando o mesmo erro de não enviar um e-mail separado.

  8. Mariusz Szatkowski September 18, 2013 at 1:56 am

    Olá, obrigado por esse trecho. E quanto a enviar uma notificação quando o cargo for alterado para um nome específico?

    Por exemplo. Quero enviar a notificação quando o cargo do usuário for alterado para ‘group-x’…

    Obrigado e atenciosamente
    M

  9. Tiago Dufau de Vargas September 6, 2013 at 3:43 pm

    Me poupou um dia de pesquisa!! Muito obrigado.

  10. Alguma ideia de como resolver isso se você quiser que o e-mail seja enviado apenas quando você alterar o cargo deles, e não quando você definir o cargo? Com este trecho, um e-mail será enviado quando você adicionar um novo usuário. Um e-mail também será enviado quando você atualizar, por exemplo, o primeiro nome de um usuário (sem tocar no cargo).

    1. Tiago Dufau de Vargas September 6, 2013 at 3:46 pm

      Você poderia tentar usar get_userdata e verificar se o cargo do usuário atual é diferente do novo…

  11. Brilhante! Obrigado!

    1. Obrigado Raam, fico feliz em saber que você gostou.

Adicionar um comentário

Ficamos felizes que você tenha escolhido deixar um comentário. Por favor, tenha em mente que todos os comentários são moderados de acordo com nossa política de privacidade, e todos os links são nofollow. NÃO use palavras-chave no campo do nome. Vamos ter uma conversa pessoal e significativa.

Checklist de Lançamento WordPress

O Checklist Definitivo para Lançamento de WordPress

Compilamos todos os itens essenciais da lista de verificação para o lançamento do seu próximo site WordPress em um e-book prático.
Sim, envie-me o eBook Gratuito!