Como Enviar Notificação por E-mail na Publicação de Envio de Post

Introdução

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

Neste tutorial, vamos guiá-lo por cada etapa de como conseguir isso!

Criando um formulário de submissão de postagem

Para fins deste tutorial, já criamos nosso formulário de postagem de convidados. Mas se você precisar de alguma ajuda para configurar um formulário com o complemento Post Submissions, visite esta documentação e ela fornecerá etapas detalhadas sobre como criar este formulário.

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

Mapearemos os campos como Título da Postagem, Imagem em Destaque, etc., mas também alteraremos o Status da Postagem para Pendente de Revisão quando uma submissão for recebida, para que possamos revisar a postagem antes de publicá-la.

Defina o Status da Postagem como Pendente de Revisão ou Rascunho

Configurando a notificação por e-mail para submissões de postagem

Em seguida, é hora de adicionar o trecho 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 este trecho fará é, à medida que o status Publicado for atualizado na postagem, ele procurará o autor com esse Nome, se for encontrado, ele obterá o Endereço de E-mail associado a esse usuário e enviará a mensagem que está inserida no trecho.

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

Você pode atualizar esta mensagem que irá para o autor para o que quiser. Neste exemplo, estamos definindo o Assunto do e-mail para o título da postagem, bem como incluindo esse 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, este trecho irá para o primeiro nome que encontrar.

E é isso, quando a postagem for publicada, o autor receberá uma notificação por e-mail sobre sua submissão de postagem!

exemplo de notificação por e-mail no envio de postagem

Você 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 Post Submissions.