Suchen Sie nach einer Möglichkeit, WordPress-Benutzern E-Mail-Benachrichtigungen zu senden, wenn sich ihre Benutzerrolle ändert? Es gibt wahrscheinlich ein Plugin dafür, aber wir haben einen schnellen Code-Schnipsel erstellt, den Sie verwenden können, um Mitgliedern E-Mail-Benachrichtigungen zu senden, wenn sich ihre Benutzerrolle in WordPress geändert hat.
Anweisungen:
Sie müssen diesen Code nur zur functions.php-Datei Ihres Themes oder in ein websitespezifisches Plugin einfügen:
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);
Hinweis: Wenn Sie zum ersten Mal Code-Schnipsel in WordPress hinzuf ilde{A}gen, lesen Sie bitte unseren Leitfaden, wie Sie Code-Schnipsel richtig in WordPress kopieren / einf ilde{A}gen, damit Sie Ihre Website nicht versehentlich besch ilde{A}digen.
Wenn Ihnen dieser Code-Schnipsel gefallen hat, ziehen Sie bitte in Betracht, unsere anderen Artikel auf der Website zu lesen, wie z. B.: 62 beste kostenlose WordPress-Blog-Themes und 7 beste WordPress-Kontaktformular-Plugins.
Wie verwende ich hier HTML-Tags?
Ich möchte Text fett machen
$message = „Hallo “ .$user_info->display_name . “ Ihre Rolle hat sich auf “.$site_url.” geändert, herzlichen Glückwunsch, Sie sind jetzt ein “ . $new_role;
Sie könnten versuchen, diesen Code für diese Zeile zu verwenden:
$message = „Hallo “ .$user_info->display_name . “ Ihre Rolle hat sich auf “.$site_url.” geändert, herzlichen Glückwunsch, Sie sind jetzt ein “ . $new_role . ““;
Perfekt 👍
Vielen Dank 👏
Ihr Artikel hat mir geholfen, aber er sendet auch E-Mails an neue Registranten. Ich möchte Ihren Code für zwei Rollen verwenden, für die ich benutzerdefinierte Nachrichten haben möchte. Würde dieser Code dafür funktionieren?
Der Code müsste modifiziert werden, um den Wert von
$new_rolezu überprüfen.Ich habe diesen Code verwendet, aber keine E-Mail erhalten, als ich meine Rolle geändert habe
Sie sollten vielleicht einen Blick darauf werfen: https://www.isitwp.com/set-configure-smtp-wordpress/
Dieser funktioniert und sendet keine E-Mail, wenn sich jemand neu registriert
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 = “Ihr Konto wurde validiert. Sie können jetzt mit 1223.com einkaufen”;
$message = “Willkommen “ .$user_info->display_name . “! Nachricht .” ;
wp_mail($to, $subject, $message);
}}
add_action( ‘set_user_role’, ‘user_role_update’, 10, 2);
Das war super hilfreich! Danke!
Hallo,
1. Danke für den Snippet – aber ich möchte den Benutzer nur benachrichtigen, wenn sich die Rolle eines bestehenden Benutzers ändert.
Jetzt sendet das Skript eine E-Mail, wenn ein neuer Benutzer zu WP hinzugefügt wird.
2. Es wäre genauer, den Rollennamen zu senden (jetzt sendet es den Slug)
Irgendwelche Ideen?
Danke
Hallo, hast du den Snippet erhalten? Wenn möglich, könntest du mir auch den Link schicken? Denn ich habe dasselbe Problem, dass keine separate E-Mail gesendet wird.
Hallo, danke für diesen Snippet. Was ist mit dem Senden einer Benachrichtigung, wenn die Rolle zu einem bestimmten Namen geändert wird?
Z.B. Ich möchte die Benachrichtigung senden, wenn die Benutzerrolle zu „group-x“ geändert wird…
Danke und freundliche Grüße
M
Hat mir einen Tag Recherche erspart!! Vielen Dank.
Irgendeine Idee, wie man das löst, wenn die E-Mail nur gesendet werden soll, wenn man ihre Rolle ändert, nicht wenn man die Rolle festlegt? Mit diesem Snippet wird eine E-Mail gesendet, wenn Sie einen neuen Benutzer hinzufügen. Eine E-Mail wird auch gesendet, wenn Sie z.B. den Vornamen eines Benutzers aktualisieren (ohne die Rolle zu berühren).
Sie könnten versuchen, get_userdata zu verwenden und zu überprüfen, ob die aktuelle Benutzerrolle von der neuen abweicht…
Brillant! Danke!
Danke Raam, freut mich zu hören, dass es dir gefällt.