web-dev-qa-db-fra.com

Courriel administratif personnalisé pour l'enregistrement d'un nouvel utilisateur

J'ai parcouru le Web pour trouver la solution à ce petit problème, mais je continue à obtenir des résultats qui m'indiquent comment personnaliser l'e-mail de notification et non l'adresse électronique.

J'ai l'adresse électronique de l'administrateur dans les paramètres WP, comme [email protected], ce qui est excellent, mais tous les nouveaux enregistrements d'utilisateur que je souhaite consulter doivent être adressés à une adresse électronique différente.

par exemple.

Nouvel utilisateur enregistré, l'email est envoyé à [email protected]

Les plugins, thèmes, etc. doivent être mis à jour, tous les courriels sont envoyés à l'adresse suivante: [email protected]

3
David Pearce

Oui, vous pouvez modifier l'adresse e-mail à l'aide de la fonction wp_mail. Vous pouvez vérifier ceci comment faire cela http://www.butlerblog.com/2011/07/14/changing-the-wp_mail-from-address-with-a-plugin/

Utilisez ce plugin pour la gestion des utilisateurs. Il prend en charge l’adresse électronique lorsqu’un nouvel utilisateur s’enregistre https://wordpress.org/plugins/wp-members/

Utilisez ce code dans votre fichier functions.php.

function so174837_registration_email_alert( $user_id ) {
    $user    = get_userdata( $user_id );
    $email   = $user->user_email;
    $message = $email . ' has registered to your website.';
    wp_mail( '[email protected]', 'New User registration', $message );
}
add_action('user_register', 'so174837_registration_email_alert');
4
krishna

J'ai été amené à ce poste alors que je faisais une recherche sur Google pour une question en particulier. Ce qui est drôle, c’est que la réponse publiée fait référence à l’un de mes articles de blog et à mon plugin. C'est génial - sauf que dans ce cas, je ne pense pas que cela réponde vraiment au PO.

La question était que toutes les notifications à l'administrateur devaient aller à l'adresse électronique spécifiée, SAUF une - la notification du nouvel utilisateur.

Mon approche à cet égard (à condition que le processus soit le WP l'enregistrement natif) consisterait à utiliser un filtre sur wp_mail () (BTW a un filtre à la fin du processus ).

J'utiliserais ce filtre pour examiner le contenu du message. S'il s'agissait de l'e-mail envoyé pour la notification d'un nouvel utilisateur, utilisez le filtre pour modifier l'adresse "en".

Dans cet exemple, l'objet est examiné pour voir s'il contient 'Enregistrement d'un nouvel utilisateur' qui fait partie de la ligne d'objet dans l'e-mail de notification administrateur par défaut WP. Si tel est le cas, l'adresse e-mail "à" est remplacée par l'adresse souhaitée. Sinon, tous les autres cas traversent le filtre sans être touchés.

add_filter( 'wp_mail', 'my_wp_mail_filter' );
function my_wp_mail_filter( $args ) {
    // Check the message subject for a known string in the notification email.
    if ( strpos( $args['subject'], 'New User Registration' ) ) {
        // This is the notification email, so change the "to" address.
        $args['to'] = '[email protected]';
    }
    return $args;
}
2
butlerblog