¿Cómo enviar correos automáticamente al publicar un tipo de entrada personalizada?

24 may 2013, 20:15:11
Vistas: 20.8K
Votos: 2

Me gustaría que se enviara automáticamente un correo electrónico a los suscriptores de mi sitio web cuando publico una entrada de un tipo de entrada personalizada específico. He encontrado algunos plugins que hacen esto, pero solo funcionan para entradas regulares (o para cualquier tipo de entrada que se publique, sin permitir especificar un tipo de entrada en particular). ¡Cualquier sugerencia sería muy apreciada! Gracias.

0
Todas las respuestas a la pregunta 1
3
16

Enganchar al hook transition_post_status, obtener los usuarios y enviar un correo electrónico a todos los usuarios.

Código de ejemplo, no probado:

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( '¡Hola hay una nueva entrada!
        Ver <%s>',
        get_permalink( $post )
    );


    wp_mail( $emails, '¡Nueva entrada!', $body );
}

Probablemente deberías usar el campo Bcc.

24 may 2013 21:45:19
Comentarios

¡Muchas gracias por la ayuda toscho! Probé tu código y parece estar funcionando. ¡Saludos!

furio furio
2 jun 2013 22:28:36

@toscho o furio, esto está funcionando casi perfecto para mí, gracias, ¿alguno de ustedes sabe cómo modificarlo para que cada usuario solo vea que fue enviado a ellos, no a usuario1, usuario2, usuario3...?

Chuck Chuck
4 nov 2013 01:07:12

@Chuck Mira mi actualización o http://wordpress.stackexchange.com/a/45844/73.

fuxia fuxia
4 nov 2013 03:34:21