¿Hay alguna forma de que Wordpress me envíe un correo electrónico cada vez que se publique una página o publicación?
¿Hay alguna forma de que Wordpress me envíe un correo electrónico cada vez que se publique una página o publicación?
Hay algunos complementos que manejan las notificaciones por correo electrónico , pero todos parecen actuar como un servicio de suscripción para (todos) usuarios de WordPress.
Para notificar solo a usted cuando se publica una publicación o página:
/**
* Send an email notification to the administrator when a post is published.
*
* @param string $new_status
* @param string $old_status
* @param object $post
*/
function wpse_19040_notify_admin_on_publish( $new_status, $old_status, $post ) {
if ( $new_status !== 'publish' || $old_status === 'publish' )
return;
if ( ! $post_type = get_post_type_object( $post->post_type ) )
return;
// Recipient, in this case the administrator email
$emailto = get_option( 'admin_email' );
// Email subject, "New {post_type_label}"
$subject = 'New ' . $post_type->labels->singular_name;
// Email body
$message = 'View it: ' . get_permalink( $post->ID ) . "\nEdit it: " . get_edit_post_link( $post->ID );
wp_mail( $emailto, $subject, $message );
}
add_action( 'transition_post_status', 'wpse_19040_notify_admin_on_publish', 10, 3 );
Puede colocar esto en functions.php
de su tema o guardarlo como un complemento (lo que podría ser más apropiado, ya que no está relacionado exactamente con el tema).
sha: responde a la pregunta aportando el conocimiento de que la solución publicada no funciona en todos los casos.
Después de 24 horas, puedo actualizar el conocimiento que aporté. La solución en esta ubicación ( ¿Notificar al administrador cuando se edita la página? ) funciona en el servidor donde la solución publicada anteriormente no lo hace. Para citar el hilo con la solución que funciona mejor en los dos contextos que probé:
El script original de wpcodex funciona bien:
add_action( 'save_post', 'my_project_updated_send_email' );
function my_project_updated_send_email( $post_id ) {
//verify post is not a revision
if ( !wp_is_post_revision( $post_id ) ) {
$post_title = get_the_title( $post_id );
$post_url = get_permalink( $post_id );
$subject = 'A post has been updated';
$message = "A post has been updated on your website:\n\n";
$message .= "<a href='". $post_url. "'>" .$post_title. "</a>\n\n";
//send email to admin
wp_mail( get_option( 'admin_email' ), $subject, $message );
}
}
Claro, tendrá que usar los ganchos o ganchos de publicación de estado y wp_mail()
.
Hay un complemento muy flexible llamado " Publicar notificador de estado " disponible en el directorio de complementos de WordPress .
Puede definir reglas propias, cuando se debe enviar una notificación. Puede elegir el destinatario, Cc, Bcc, antes y después del estado. Y puede personalizar completamente el texto del cuerpo y el asunto (con marcadores de posición).
¡Funciona perfectamente para mí!
Si no quieres hackear el archivo de tu tema, usa un complemento como este. Envía notificaciones al administrador cuando el colaborador envía una publicación para su revisión, y una notificación por correo electrónico al colaborador cuando se publica la publicación.
Lea otras preguntas en las etiquetas email notifications