Como enviar uma notificação por e-mail sobre a publicação do envio de uma postagem

Introdução

Você gostaria de enviar uma notificação por e-mail aos autores que enviarem um artigo de envio de postagem quando a postagem for publicada? Ao criar um formulário para o complemento Post Submissions, você pode definir o status dessa postagem como Rascunho ou Revisão pendente quando ela for enviada. Isso permite que o administrador do site revise o artigo antes de ele ser publicado. Quando o artigo é publicado, o autor não recebe nenhuma notificação; no entanto, ao adicionar um pequeno snippet ao seu site, você pode facilmente enviar uma notificação ao autor para informá-lo de que a postagem acabou de ser publicada.

Neste tutorial, vamos orientá-lo em cada etapa de como conseguir isso!

Criação de um formulário de envio de postagem

Para os fins deste tutorial, já criamos nosso formulário de guest post. Mas se você precisar de ajuda para configurar um formulário com o complemento Post Submissions, visite esta documentação, que fornecerá etapas detalhadas sobre como criar esse formulário.

Depois de criar o formulário, você precisará ajustar as configurações. Dentro do construtor de formulários, clique em Settings (Configurações ) e, em seguida, clique na guia Post Submissions (Envios de publicações) para editar essas configurações.

Vamos mapear os campos como Título da postagem, Imagem em destaque etc., mas também vamos alterar o Status da postagem para Revisão pendente quando um envio for recebido, para que possamos revisar a postagem antes de publicá-la.

Defina o status da postagem como Pending Review (Revisão pendente) ou Draft (Rascunho)

Configuração da notificação por e-mail para envios de postagens

Em seguida, é hora de adicionar o snippet de código que enviará um e-mail ao autor quando a postagem for publicada. Para fazer isso, você precisará adicionar um trecho de código ao seu site.

Se precisar de ajuda para adicionar trechos de código ao seu site, consulte este tutorial.

/**
 * Notify author when post-submission article is published
 *
 * @link   https://wpforms.com/developers/how-to-send-email-notification-on-post-submission-publish/
 */
 
function notifyauthor($post_id) {
     
    global $wpdb;
     
    $post = get_post($post_id); // Get the Post info
     
    $table_name = $wpdb->prefix . 'wpforms_entries'; // Our entries table
     
    $wpf_entry_fields = $wpdb->get_col( $wpdb->prepare( "SELECT fields FROM {$table_name} WHERE post_id = %d;", $post_id ) ); // Query the table based on Post ID
     
    $wpf_entry_data = json_decode( $wpf_entry_fields[0] ); // Decode the data
    // Set these to false now. They will be set to true if an email and name are found.
    // 
    $name_found = false;
    $email_found = false;
     
    // Look for the author's email address and name.
    foreach ( $wpf_entry_data as $item ) {
         
        // Find the name, only use the first
        if ( "name" == $item->type && false == $name_found ) {
            $author_name = $item->first;
            $name_found = true;
        }
         
        //Find the email address
        if ( "email" == $item->type ) {
            if( is_email( $item->value ) ){
                $author_email = $item->value;
                $email_found = true;
                break;
            } 
        }
    }
     
    // Email address found, so send the notification
    if( true == $email_found ){
        $subject = "Post Published: ".$post->post_title."";
        $message = "
              Hi there, " . esc_attr( $author_name ) . "!,
              Your post, \"" . $post->post_title . "\" has just been published.
              View post: " . get_permalink( $post_id ) . "
              Thanks";
           wp_mail( $author_email, $subject, $message );
    }
}
 
add_action( 'publish_post', 'notifyauthor' );

O que esse snippet fará é que, quando o status Publicado for atualizado na publicação, ele procurará o autor com esse nome e, se for encontrado, obterá o endereço de e-mail associado a esse usuário e enviará a mensagem inserida no snippet.

Altere a mensagem para o que você deseja quando a postagem for publicada

Você pode atualizar essa mensagem que será enviada ao autor para o que desejar. Neste exemplo, estamos definindo o Assunto do e-mail como o título da postagem, bem como incluindo o título da postagem e seu permalink dentro da notificação por e-mail.

Observação: se vários autores estiverem usando o mesmo nome, esse snippet usará o primeiro nome que encontrar.

E é isso: quando a postagem for publicada, o autor receberá uma notificação por e-mail sobre o envio da postagem!

Exemplo de notificação por e-mail sobre o envio de postagens

Gostaria que o complemento Post Submission criasse um perfil de usuário para você? Dê uma olhada em nosso tutorial sobre Como criar um formulário de perfil usando envios de posts.