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 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.

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!

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.