Alerta de e-mail quando qualquer postagem ou página é alterada

10

Existe uma maneira de o Wordpress me enviar e-mail sempre que uma página ou publicação for publicada?

    
por GavinR 02.06.2011 / 15:09

5 respostas

18

alguns plug-ins que lidam com notificações por e-mail , mas todos parecem agir como um serviço de assinatura para todos os usuários do WordPress.

Para notificar apenas você quando uma postagem ou página for publicada:

/**
 * 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 );

Você pode soltar isso no functions.php do seu tema ou salvá-lo como um plug-in (o que pode ser mais apropriado, pois não é exatamente relacionado ao 'tema').

    
por TheDeadMedic 02.06.2011 / 15:26
3

sha - responde a pergunta contribuindo com o conhecimento de que a solução publicada não funciona em todas as instâncias.

Após 24 horas, posso atualizar o conhecimento com o qual contribuí. A solução neste local ( Notificar o administrador quando a página é editada? ) funciona no servidor onde a solução postada acima não. Para citar o segmento com a solução que funciona melhor nos dois contextos que experimentei:

O script original do wpcodex funciona bem:

 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 ); 
   } 
} 
    
por Doorwhey 12.04.2013 / 00:27
1

Claro, você precisará usar o gancho Transição de status adequado ou ganchos e wp_mail() .

    
por Rarst 02.06.2011 / 15:21
-1

Existe um plugin muito flexível chamado " Post Status Notifier " disponível no diretório de plugins do WordPress .

Você pode definir suas próprias regras quando uma notificação deve ser enviada. Você pode escolher o destinatário, Cc, Cco, antes e depois do status. E você pode personalizar completamente o corpo do texto e assunto (com espaços reservados).

Funciona perfeitamente para mim!

    
por mikeST 10.02.2014 / 22:03
-1

Se você não quiser invadir o arquivo fucntions de seu tema, use um plug-in como este. Envia notificações para o administrador quando o colaborador envia uma postagem para revisão e envia uma notificação por e-mail ao colaborador quando a postagem é publicada.

enlace

    
por CreativeDev 02.05.2014 / 23:00