Come inviare automaticamente email alla pubblicazione di un custom post type?

24 mag 2013, 20:15:11
Visualizzazioni: 20.8K
Voti: 2

Vorrei che venisse inviata automaticamente un'email ai sottoscrittori del mio sito web quando pubblico un post di uno specifico custom post type. Ho trovato alcuni plugin che lo fanno ma solo per i post regolari (o per qualsiasi tipo di post che viene pubblicato, senza permettere di specificare un particolare post type). Qualsiasi suggerimento sarebbe molto apprezzato! Grazie.

0
Tutte le risposte alla domanda 1
3
16

Agganciati a transition_post_status, recupera gli utenti e invia un'email a tutti gli utenti.

Codice di esempio, non testato:

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( 'Ehi, c\'è un nuovo articolo!
        Vedi <%s>',
        get_permalink( $post )
    );


    wp_mail( $emails, 'Nuovo articolo!', $body );
}

Probabilmente dovresti usare il campo Bcc.

24 mag 2013 21:45:19
Commenti

Grazie mille per l'aiuto toscho! Ho provato il tuo codice e sembra funzionare. Saluti!

furio furio
2 giu 2013 22:28:36

@toscho o furio, questo funziona quasi perfettamente per me, grazie, qualcuno di voi sa come modificarlo in modo che ogni utente veda solo che è stato inviato a loro, non a user1, user2, user3...

Chuck Chuck
4 nov 2013 01:07:12

@Chuck Vedi il mio aggiornamento o http://wordpress.stackexchange.com/a/45844/73.

fuxia fuxia
4 nov 2013 03:34:21