Cum să trimiți automat email-uri la publicarea unui tip de postare personalizat?

24 mai 2013, 20:15:11
Vizualizări: 20.8K
Voturi: 2

Aș dori să trimit automat un email către abonații site-ului meu web atunci când public o postare pentru un anumit tip de postare personalizat (custom post type). Am găsit câteva plugin-uri care fac acest lucru, dar doar pentru postări obișnuite (sau pentru orice tip de postare care este publicată, fără a permite specificarea unui anumit tip de postare). Orice sugestii ar fi foarte apreciate! Mulțumesc.

0
Toate răspunsurile la întrebare 1
3
16

Conectează-te la transition_post_status, preia utilizatorii și trimite un email tuturor utilizatorilor.

Cod exemplu, netestat:

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( 'Salut, există o nouă postare!
        Vezi <%s>',
        get_permalink( $post )
    );


    wp_mail( $emails, 'Postare nouă!', $body );
}

Probabil ar fi bine să folosești câmpul Bcc.

24 mai 2013 21:45:19
Comentarii

Mulțumesc foarte mult pentru ajutor, toscho! Am încercat codul tău și pare să funcționeze. Noroc!

furio furio
2 iun. 2013 22:28:36

@toscho sau furio, funcționează aproape perfect pentru mine, mulțumesc, știe cineva dintre voi cum să-l modific astfel încât fiecare utilizator să vadă că mesajul a fost trimis doar lui, nu și user1, user2, user3...

Chuck Chuck
4 nov. 2013 01:07:12

@Chuck Vezi actualizarea mea sau http://wordpress.stackexchange.com/a/45844/73.

fuxia fuxia
4 nov. 2013 03:34:21