Alerta por Email cuando se Modifica una Entrada o Página

2 jun 2011, 16:09:34
Vistas: 22.6K
Votos: 11

¿Existe alguna manera de que WordPress me envíe un correo electrónico cada vez que se publica una Página o Entrada?

0
Todas las respuestas a la pregunta 5
0
19

Existen algunos plugins que manejan notificaciones por correo, pero todos parecen actuar como un servicio de suscripción para (todos) los usuarios de WordPress.

Para notificar solo a ti cuando se publica una entrada o página:

/**
 * Envía una notificación por correo al administrador cuando se publica una entrada.
 * 
 * @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;

    // Destinatario, en este caso el correo del administrador
    $emailto = get_option( 'admin_email' );

    // Asunto del correo, "Nuevo {post_type_label}"
    $subject = 'Nuevo ' . $post_type->labels->singular_name;

    // Cuerpo del correo
    $message = 'Verlo: ' . get_permalink( $post->ID ) . "\nEditarlo: " . get_edit_post_link( $post->ID );

    wp_mail( $emailto, $subject, $message );
}

add_action( 'transition_post_status', 'wpse_19040_notify_admin_on_publish', 10, 3 );

Puedes colocar esto en el functions.php de tu tema, o guardarlo como un plugin (lo cual podría ser más apropiado, ya que no está exactamente relacionado con el 'tema').

2 jun 2011 16:26:39
0

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 contribuí. La solución en esta ubicación (¿Notificar al administrador cuando se edita una página?) funciona en el servidor donde la solución publicada anteriormente no lo hace. Para citar del hilo con la solución que funciona mejor en los dos contextos que probé:

El script original de wpcodex funciona correctamente:

add_action( 'save_post', 'my_project_updated_send_email' ); 
function my_project_updated_send_email( $post_id ) { 
   //verificar que el post no es una revisión
   if ( !wp_is_post_revision( $post_id ) ) { 
        $post_title = get_the_title( $post_id ); 
        $post_url = get_permalink( $post_id ); 
        $subject = 'Un post ha sido actualizado'; 
        $message = "Un post ha sido actualizado en tu sitio web:\n\n";
        $message .= "<a href='". $post_url. "'>" .$post_title. "</a>\n\n"; 
        //enviar email al administrador
        wp_mail( get_option( 'admin_email' ), $subject, $message ); 
  } 
} 
12 abr 2013 01:27:07
0

Por supuesto, necesitarás utilizar el hook de transición de estado de publicación adecuado o los hooks y la función wp_mail().

2 jun 2011 16:21:42
1
-1

Existe un plugin muy flexible llamado "Post Status Notifier" disponible en el directorio de plugins de WordPress.

Puedes definir tus propias reglas sobre cuándo se debe enviar una notificación. Puedes elegir el destinatario, Cc, Bcc, el estado anterior y posterior. Y puedes personalizar completamente el texto del cuerpo y el asunto (con marcadores de posición).

¡Funciona perfectamente para mí!

10 feb 2014 23:03:05
Comentarios

[tag:plugin-recommendations] están fuera de tema. Y recomendar un plugin sin mostrar las líneas relevantes que resuelven la pregunta se considera de baja calidad. Si el plugin desaparece, la respuesta no tiene valor y el sitio sufre de enlaces rotos.

kaiser kaiser
11 feb 2014 00:35:21
2
-1

Si no deseas modificar el archivo de funciones de tu tema, entonces utiliza un plugin como este. Envía notificaciones al administrador cuando un colaborador envía una publicación para revisión, y una notificación por correo electrónico al colaborador cuando la publicación es publicada.

https://wordpress.org/plugins/wpsite-post-status-notifications/

3 may 2014 00:00:06
Comentarios

Las respuestas deben ser más que simples enlaces. Deben ser realmente una solución en lugar de una ruta donde alguien tal vez encuentre una respuesta. Por favor ayuda a prevenir enlaces rotos, [edita] tu respuesta y proporciona la información necesaria que ayude al OP así como a visitantes posteriores a resolver su problema.

kaiser kaiser
3 may 2014 00:23:52

Creo que lo has expresado un poco mal. Nunca estarías "hackeando" el archivo de funciones. Está ahí para hacer cambios e implementar hooks.

Mike Mike
6 may 2014 17:12:40