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.
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;
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 . ““;
Perfeito 👍
Muito obrigado 👏
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?
O código precisaria ser modificado para verificar o valor de
$new_role.Usei este código, mas nenhum e-mail foi recebido quando mudei meu papel
Você pode querer conferir: https://www.isitwp.com/set-configure-smtp-wordpress/
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);
Isso foi super útil! Obrigado!
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
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.
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
Me poupou um dia de pesquisa!! Muito obrigado.
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).
Você poderia tentar usar get_userdata e verificar se o cargo do usuário atual é diferente do novo…
Brilhante! Obrigado!
Obrigado Raam, fico feliz em saber que você gostou.