Existe uma maneira de o Wordpress me enviar e-mail sempre que uma página ou publicação for publicada?
fonte
Existe uma maneira de o Wordpress me enviar e-mail sempre que uma página ou publicação for publicada?
Existem alguns plugins que lidam com notificações por email , mas todos parecem funcionar como um serviço de assinatura para (todos) usuários do WordPress.
Para notificá- lo apenas 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 soltá-lo no tema functions.php
ou salvá-lo como um plug-in (o que pode ser mais apropriado, pois não é exatamente relacionado ao 'tema').
sha - responde à 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 que contribuí. A solução neste local ( Notificar o administrador quando a página for editada? ) Funciona no servidor em que a solução postada acima não. Para citar o tópico com a solução que funciona melhor nos dois contextos, tentei:
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 );
}
}
Claro, você precisará usar os ganchos e ganchos apropriados para a pós-transição de statuswp_mail()
.
Existe um plugin muito flexível chamado " Post Status Notifier " disponível no diretório de plugins do WordPress.
Você pode definir regras próprias, 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 texto e o assunto do corpo (com espaços reservados).
Funciona perfeitamente para mim!
Se você não deseja hackear o arquivo de fucntions do seu tema, use um plug-in como este. Ele envia notificações ao administrador quando o colaborador envia uma postagem para revisão e envia uma notificação por e-mail ao colaborador quando a postagem é publicada.
https://wordpress.org/plugins/wpsite-post-status-notifications/
fonte