Come inviare notifiche email alla pubblicazione di un post inviato

Introduzione

Desideri inviare una notifica email agli autori che inviano un articolo tramite Post Submissions quando il loro post viene pubblicato? Quando crei un modulo per il componente aggiuntivo Post Submissions, puoi impostare lo stato di questo post su Bozza o In attesa di revisione al momento dell'invio. Ciò consente all'amministratore del sito di rivedere l'articolo prima che venga pubblicato. Quando l'articolo viene pubblicato, l'autore non riceve alcuna notifica, tuttavia, aggiungendo un piccolo snippet al tuo sito puoi facilmente inviare una notifica all'autore per informarlo che il suo post è stato appena pubblicato.

In questo tutorial, ti guideremo passo dopo passo su come ottenere questo risultato!

Creazione di un modulo di invio post

Ai fini di questo tutorial, abbiamo già creato il nostro modulo per gli articoli ospiti. Ma se hai bisogno di assistenza nella configurazione di un modulo con il componente aggiuntivo Post Submissions, visita questa documentazione e ti fornirà passaggi dettagliati su come creare questo modulo.

Una volta creato il tuo modulo, dovrai regolare le impostazioni. Mentre sei nell'editor del modulo, fai clic su Impostazioni e quindi fai clic sulla scheda Post Submissions per modificare queste impostazioni.

Mappiamo campi come il Titolo del post, l'Immagine in evidenza, ecc., ma cambieremo anche lo Stato del post in In attesa di revisione quando viene ricevuta una sottomissione, in modo da poter rivedere il post prima di pubblicarlo.

Imposta lo stato del post su In attesa di revisione o Bozza

Impostazione della notifica email per le sottomissioni di post

Successivamente, è ora di aggiungere lo snippet di codice che invierà un'email all'autore quando il post viene pubblicato. Per fare ciò, dovrai aggiungere uno snippet di codice al tuo sito.

Se hai bisogno di aiuto per aggiungere snippet di codice al tuo sito, consulta questo 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' );

Ciò che farà questo snippet è che, quando lo stato Pubblicato viene aggiornato sul post, cercherà l'autore con quel Nome, se viene trovato otterrà l'Indirizzo email associato a quell'utente e invierà il messaggio inserito nello snippet.

Modifica il messaggio come preferisci quando il post viene pubblicato

Puoi aggiornare questo messaggio che andrà all'autore come preferisci. In questo esempio, stiamo impostando l'Oggetto dell'email sul titolo del post, oltre a includere il titolo del post e il suo permalink all'interno della notifica email.

Nota: Se più autori utilizzano lo stesso nome, questo snippet verrà inviato al primo nome trovato.

E questo è tutto! Quando il post viene pubblicato, l'autore riceverà una notifica via email sulla sua sottomissione di post!

esempio di notifica email all'invio del post

Desideri che il componente aggiuntivo Post Submission crei un profilo utente per te? Dai un'occhiata al nostro tutorial su Come creare un modulo profilo utilizzando Post Submissions.