Come inviare una notifica via e-mail sulla pubblicazione di un post

Introduzione

Volete inviare una notifica via e-mail agli autori che inviano un articolo di presentazione di un post quando il loro post viene pubblicato? Quando si crea un modulo per l'addon Post Submissions, è possibile impostare lo stato di questo post su Draft o Pending Review quando viene inviato. 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 vostro sito, potete facilmente inviare una notifica all'autore per fargli sapere che il suo post è stato appena pubblicato.

In questo tutorial vi illustreremo tutti i passaggi per ottenere questo risultato!

Creare un modulo per l'invio di un post

Ai fini di questo tutorial, abbiamo già creato il modulo per i post degli ospiti. Ma se avete bisogno di assistenza per impostare un modulo con l'addon Post Submissions, visitate questa documentazione che vi fornirà i passaggi dettagliati su come creare questo modulo.

Una volta creato il modulo, è necessario regolare le impostazioni. All'interno del costruttore di moduli, fare clic su Impostazioni e poi sulla scheda Invio di messaggi per modificare queste impostazioni.

Mapperemo i campi come il titolo del post, l'immagine in primo piano e così via, ma cambieremo anche lo stato del post in In attesa di revisione quando viene ricevuto un invio, in modo da poter rivedere il post prima di pubblicarlo.

Impostate lo stato del post su In attesa di revisione o Bozza.

Impostazione della notifica via e-mail per l'invio dei post

Quindi, è il momento di aggiungere lo snippet di codice che invierà un'e-mail all'autore quando il post viene pubblicato. Per farlo, è necessario aggiungere uno snippet di codice al sito.

Se avete bisogno di aiuto per aggiungere gli snippet di codice al vostro sito, consultate 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' );

Questo snippet farà in modo che, quando lo stato Pubblicato viene aggiornato sul post, cercherà l'autore con quel nome; se lo trova, otterrà l'indirizzo e-mail associato a quell'utente e invierà il messaggio inserito nello snippet.

Modificate il messaggio che desiderate quando il post viene pubblicato.

È possibile aggiornare il messaggio che verrà inviato all'autore come si desidera. In questo esempio, impostiamo l'Oggetto dell'e-mail sul titolo del post e includiamo il titolo del post e il suo permalink all'interno dell'e-mail di notifica.

Nota: se più autori utilizzano lo stesso nome, questo snippet utilizzerà il primo nome trovato.

Ed ecco che quando il post sarà pubblicato l'autore riceverà una notifica via email dell'invio del post!

esempio di notifica via e-mail dell'invio di un post

Volete che l'addon Post Submission crei un profilo utente per voi? Date un'occhiata al nostro tutorial su Come creare un modulo di profilo usando i post inviati.