Senden einer anderen E-Mail-Benachrichtigung während der Registrierung basierend auf der Benutzerrolle

Ich habe eine Website mit zwei Benutzerrollen namens “A” und “B”, wenn jemand eine Registrierung mit “A” macht, dann möchte ich eine Willkommens-EMail senden und wenn mit “B” verschiedene Willkommens-E-Mails senden möchten, ist das möglich? Danke im Voraus

Solutions Collecting From Web of "Senden einer anderen E-Mail-Benachrichtigung während der Registrierung basierend auf der Benutzerrolle"

Ja, das ist möglich. WordPress definiert eine function namens wp_new_user_notification . Sie können diese function überschreiben, indem Sie eine eigene Version (auch wp_new_user_notification ) in Ihrem eigenen Theme oder Plugin wp_new_user_notification .

Möglicherweise möchten Sie zunächst den Inhalt der vorhandenen Core-Version in Ihre eigene Kopie kopieren. Sie können nun die Logik für Ihre eigenen Bedürfnisse anpassen.

Da diese function die $user_id als erstes Argument $user_id , können Sie get_userdata , um mehr Informationen über den Benutzer (z. B. die Rollen dieses Benutzers) zu erhalten und dann je nach seiner Rolle unterschiedliche Inhalte zu senden.

 $user_data = get_userdata( $user_id ); if ( ! empty( $user_data->roles ) ) { if ( in_array( 'role_a', $user_data->roles, true ) { // custom content for role a } elseif ( in_array( 'role_b', $user_data->roles, true ) { // custom content for role b } } 

Ich habe das Problem getriggers. Danke für deine großartige Hilfe @ jared-cobb

  function send_welcome_email_to_new_user($user_id) { $user = get_userdata($user_id); $user_email = $user->user_email; // email will send only for "A" registers if ( in_array( 'A', $user->roles )) { $to = $user_email; $subject = "Hi A, welcome to our site!"; $body = ' 

Dear A,

Thank you for joining our site. Your account is now active.

'; $headers = array('Content-Type: text/html; charset=UTF-8'); if (wp_mail($to, $subject, $body, $headers)) { error_log("email has been successfully sent to user whose email is " . $user_email); } } // email will send only for "B" registers if ( in_array( 'B', $user->roles )) { $to = $user_email; $subject = "Hi B, welcome to our site!"; $body = '

Dear B,

Thank you for joining our site. Your account is now active.

'; $headers = array('Content-Type: text/html; charset=UTF-8'); if (wp_mail($to, $subject, $body, $headers)) { error_log("email has been successfully sent to user whose email is " . $user_email); } } } add_action('user_register', 'send_welcome_email_to_new_user');