web-dev-qa-db-fra.com

Ajouter une deuxième adresse e-mail pour WP notifications utilisateur

Les systèmes WP envoient beaucoup de courriers aux auteurs. Il existe également des plugins qui utilisent des notifications par courrier électronique pour les auteurs.

Mais disons que j'ai un utilisateur, qui est géré par deux personnes (parce que c'est une entreprise, une entité qui est plus d'une personne) - Je veux que tous les courriels soient également envoyés à une deuxième adresse e-mail dans la page de profil de cet utilisateur WP.

Quel est le meilleur moyen d'y parvenir? Je sais comment ajouter un champ à la page de profil, mais je ne sais pas comment envoyer toutes les notifications indiquant que l'utilisateur parvient à la deuxième adresse électronique. s'il vous plaît aidez :)

1
Asaf Chertkoff

Ce n'est pas une solution spécifique à WP, mais vous pouvez généralement configurer un alias/redirecteur dans votre système de messagerie qui envoie une copie aux deux personnes.

par exemple.

[email protected]

[email protected]

etc.

1
Refiner

Une suggestion, bien que ce soit un peu bidon, que j'aimerais faire est d'utiliser une liste de diffusion. Vous pouvez ajouter un nombre infini de courriels à une liste de diffusion.

Une autre solution consiste à utiliser le crochet publish_{$posttype} pour envoyer des notifications par courrier électronique via wp_mail . Le paramètre wp_mail de la fonction $to utilise une chaîne ou un tableau pour vous permettre de transmettre plusieurs adresses électroniques.

EDIT:

function notify_users_of_new_post($post_id) {
    // Get list of subscribers and their secondary email address stored in wp_usermeta
    $user_query = get_users('blog_id=1&orderby=nicename&role=subscriber&fields=all_with_meta');

    $bName = get_bloginfo('name');
    $permalink = get_permalink($post_id);
    foreach($user_query as $user) {
        $email = $user->email;

        if (isset($user->secondary_email) AND !empty($user->secondary_email)) {
            $email = array( $user->email, $user->secondary_email );
        }

        wp_mail($email, sprintf('New Blog Entry on %s', $bName), sprintf('A new entry has been published to %s. View it clicking here: %s', $bName, $permalink));
    }
}
add_action('publish_post', 'notify_users_of_new_post');

J'ai essayé un exemple de bloc de code (ci-dessus). Une suggestion si vous envisagez d'utiliser ceci sur un site de production, utilisez un travail cron si vous avez beaucoup d'utilisateurs enregistrés, sinon je suis à peu près sûr que cela causera un délai d'attente en PHP.

2
Zack