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

Introdução

Gostaria de enviar uma notificação por correio eletrónico aos autores que submeterem um artigo de submissão de publicação quando a sua publicação for efectuada? Quando cria um formulário para o addon Submissões de publicações, pode definir o estado desta publicação como Rascunho ou Revisão pendente quando é 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 snippet ao seu site, pode facilmente enviar uma notificação ao autor para o informar de que o seu artigo acabou de ser publicado.

Neste tutorial, vamos explicar-lhe cada passo para o conseguir!

Criar um formulário de envio de correio

Para efeitos deste tutorial, já criámos o nosso formulário de publicação de convidado. Mas se precisar de ajuda para criar um formulário com o complemento Post Submissions (Envios de publicações ), visite esta documentação, que lhe dará passos pormenorizados sobre como criar este formulário.

Depois de criar o formulário, terá de ajustar as definições. Dentro do criador de formulários, clique em Definições e, em seguida, clique no separador Envios de publicações para editar estas definições.

Vamos mapear os campos como o Título da publicação, a Imagem em destaque, etc., mas também vamos alterar o Estado da publicação para Revisão pendente quando for recebida uma submissão, para que possamos rever a publicação antes de a publicar.

Definir o estado da publicação como Revisão pendente ou Rascunho

Definir a notificação por correio eletrónico para envios de posts

De seguida, é altura de adicionar o fragmento de código que enviará um e-mail ao autor quando o post for publicado. Para o fazer, terá de adicionar um fragmento 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 snippet fará é, à medida que o estado Publicado é atualizado no post, procurar o autor com esse Nome, se for encontrado, obterá o Endereço de Email associado a esse utilizador e enviará a mensagem que é introduzida no snippet.

Alterar a mensagem para o que pretende quando o post for publicado

Pode atualizar esta mensagem que será enviada ao autor para o que quiser. Neste exemplo, estamos a definir o Assunto da mensagem de correio eletrónico para o título da publicação, bem como a incluir o título da publicação e o respetivo permalink na notificação por correio eletrónico.

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

E pronto, quando o post for publicado, o autor receberá uma notificação por correio eletrónico sobre o envio do seu post!

exemplo de notificação por correio eletrónico sobre a apresentação de uma mensagem

Gostaria que o addon Envio de mensagens criasse um perfil de utilizador para si? Dê uma olhada no nosso tutorial sobre Como criar um formulário de perfil usando envios de mensagens.