web-dev-qa-db-fra.com

Comment envoyer automatiquement un courrier électronique lors de la publication d'un type de message personnalisé?

Je souhaite qu'un courrier électronique soit automatiquement envoyé aux abonnés de mon site Web lorsque je publie une publication pour un type de publication personnalisé spécifique. J'ai trouvé quelques plugins qui le feront, mais uniquement pour les publications classiques (ou pour tout type de publication publié, ne vous permettant pas de spécifier un type de publication particulier). Toutes les suggestions seraient grandement appréciées! Merci.

2
furio

Accédez à transition_post_status , récupérez les utilisateurs et envoyez un courrier électronique à tous les utilisateurs.

Exemple de code, non testé:

add_action( 'transition_post_status', 'send_mails_on_publish', 10, 3 );

function send_mails_on_publish( $new_status, $old_status, $post )
{
    if ( 'publish' !== $new_status or 'publish' === $old_status
        or 'my_custom_type' !== get_post_type( $post ) )
        return;

    $subscribers = get_users( array ( 'role' => 'subscriber' ) );
    $emails      = array ();

    foreach ( $subscribers as $subscriber )
        $emails[] = $subscriber->user_email;

    $body = sprintf( 'Hey there is a new entry!
        See <%s>',
        get_permalink( $post )
    );


    wp_mail( $emails, 'New entry!', $body );
}

Vous devriez probablement utiliser le champ Bcc .

13
fuxia