Como Enviar Notificação por Email na Publicação de Submissão de Post

Introdução

Gostaria de enviar uma notificação por e-mail aos autores que enviam um artigo de submissão de postagem quando a sua postagem for publicada? Ao criar um formulário para o complemento Submissões de Postagem, pode definir o estado desta postagem como Rascunho ou A aguardar revisão quando for submetida. Isto permite que o administrador do site reveja o artigo antes de ser publicado. Quando o artigo é publicado, o autor não recebe qualquer notificação, no entanto, ao adicionar um pequeno trecho ao seu site, pode facilmente enviar uma notificação ao autor para informá-lo de que a sua postagem acabou de ser publicada.

Neste tutorial, vamos guiá-lo através de cada passo sobre como conseguir isto!

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

Para efeitos deste tutorial, já criámos o nosso formulário de postagem de convidados. Mas se precisar de alguma assistência na configuração de um formulário com o complemento Submissões de Postagem, visite esta documentação e ela fornecerá passos detalhados sobre como criar este formulário.

Depois de ter criado o seu formulário, precisará de ajustar as definições. Enquanto estiver no construtor de formulários, clique em Definições e depois clique no separador Submissões de Postagem para editar estas definições.

Vamos mapear os campos como o Título da Postagem, Imagem em Destaque, etc., mas também vamos alterar o Estado da Postagem para A aguardar revisão quando uma submissão for recebida, para que possamos rever a postagem antes de a publicar.

Definir o Estado da Postagem para A aguardar revisão ou Rascunho

Configuração da 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 isto, precisará de 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 estado Publicado é atualizado na postagem, ele procurará o autor com esse Nome, se for encontrado, obterá o Endereço de E-mail associado a esse utilizador e enviará a mensagem que está inserida no trecho.

Altere a mensagem para o que desejar quando a postagem for publicada

Pode atualizar esta mensagem que irá para o autor para o que quiser. Neste exemplo, estamos a definir o Assunto do e-mail para o título da postagem, bem como a incluir esse título da postagem e o seu permalink dentro da notificação por e-mail.

Nota: Se vários autores estiverem a usar o mesmo nome, este trecho irá para o primeiro nome que encontrar.

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

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

Gostaria que o complemento Submissão de Postagem criasse um perfil de utilizador para si? Dê uma vista de olhos no nosso tutorial sobre Como Criar um Formulário de Perfil Usando Submissões de Postagem.