¿Cómo enviar correos automáticamente al publicar un tipo de entrada personalizada?
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.
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
.

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

@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 Mira mi actualización o http://wordpress.stackexchange.com/a/45844/73.
