Me encontraba buscando la forma de notificar a los usuarios de un sitio cuando se creara un nuevo post. Buscaba algún plugin pero luego me encontré con este ejemplo en la documentación de WordPress.
Buscando un poco más los chicos de WP Recipes también habían utilizado ese ejemplo para crear una función. Basandome en ambas cree la mia, que va un poco más allá.
function email_suscribers($post_ID) {
global $wpdb;
$post = get_post($post_ID);
$titulo = “[Nombre del Blog] Nueva publicación: “.$post->post_title;
$mensaje = “Hola! Queremos avisarte que publicamos un nuevo post en nuestro blog, querés leerlo? “.get_permalink( $post_ID );
$headers = ‘From: no-reply@tu_dominio.com’ . “\r\n” . ’Reply-To: no-reply@tu_dominio.com’ . “\r\n” . ’X-Mailer: PHP/’ . phpversion();
$usersarray = $wpdb->get_results(“SELECT user_email FROM $wpdb->users;”);
foreach($usersarray as $email){
mail($email->user_email, $titulo, $mensaje, $headers);
}
return $post_ID;
}
add_action(‘publish_post’, ‘email_suscribers’);
Si van a usar esta función en su blog, recuerden cambiar en la variable $titulo el nombre de su blog y en $headers el dominio de su sitio.
Espero que les sirva, cualquier cosa me dejan su opinión =)
Este post fue escrito por mi un día de septiembre de 2010. Gracias por visitar mi blog, me encantaría que dejes tu opinión en los comentarios.
Hoola,
Está genial! Lo voy a usar, pero… hay manera de personalizar más el mensaje? Escribir en várias líneas? meter algun logo?
Hoola,
Soy yo otra vez. También me gustaría que en los mails que la gente reciba, no vea el mail del remitente, sino solamente el nombre que yo elija.
Hola otra vez!
Se podría hacer lo mismo con los comentarios? Que cualquier comentario que se escriba se envíe a todos los usuarios registrados.
Gracias de verdad. Espero que me puedas ayudar.
Marcos, gracias por tus comentarios. Vamos por partes: …’
- Hay manera de personalizar más el mensaje? < - Obvio que si. Si en la variable '$mensaje' escribis html será enviado como tal =)
- Para que vea tu nombre o el del sitio en lugar de la dir de mail debes modificar la variable '$headers' y colocar por ejempo 'From: Tu Sitio .com
- Pregunta, porque le quisieras enviar un mail a todos los usuarios por cada comentario? Eso ya es SPAM porque no le estas preguntando a cada usuario si lo quiere recibir. Te recomiendo buscar algun plugin que haga suscripcion a los comentarios. Que lo que hacen es, cuando comentas te suscribis (por opt-in) a que te envíen un mail por cada comentarios en ese post. De esta manera solamente recibis la info que vos realmente queres. ;D
Espero que te sirva
Hola Ezequiel,
Gracias!! tienes razón, al final he instalado el plugin comment notifier, para que la gente que quiera reciba notificaciones de una entrada.
Pero aún tengo dudas respecto a la personalización del mensaje.
En el campo From: solo quiero poner el nombre del sitio, pero cuando lo hago, el sistema me pone detrás del nombre que ponga @p3slh151.shr.phx3.secureserver.net. A mi me gustaría que solo se viese un nombre y si es posible con espacios.
Otra cosa es que el mensaje me gustaría que tuviese más líneas, una debajo de otra, es decir, por ejemplo en la primera línea poner: Hola! debajo, en otra línea blablablabla etc…. no se si me he explicado bien.
Muchas gracias de antemano Ezequiel!