Cómo enviar una notificación por correo electrónico al publicar una entrada

Introducción

¿Le gustaría enviar una notificación por correo electrónico a los autores que envían un artículo de envío de post cuando se publique su post? Cuando creas un formulario para el complemento Post Submissions, puedes establecer el estado de este artículo en Borrador o Pendiente de revisión cuando se envía. Esto permite al administrador del sitio revisar el artículo antes de publicarlo. Cuando el artículo se publica, el autor no recibe ninguna notificación, sin embargo, añadiendo un pequeño fragmento a tu sitio puedes enviar fácilmente una notificación al autor para hacerle saber que su post acaba de ser publicado.

En este tutorial te explicaremos paso a paso cómo conseguirlo.

Creación de un formulario de envío de entradas

Para el propósito de este tutorial, ya hemos creado nuestro formulario de post invitado. Pero si necesitas ayuda para configurar un formulario con el complemento Post Submissions, visita esta documentación y te dará pasos detallados sobre cómo crear este formulario.

Una vez que hayas creado tu formulario, necesitarás ajustar la configuración. Dentro del creador de formularios, haz clic en Configuración y, a continuación, en la pestaña Envíos de publicaciones para editar estos ajustes.

Vamos a mapear los campos como el Título del Post, Imagen Destacada, etc pero también vamos a cambiar el Estado del Post a Pendiente de Revisión cuando se reciba un envío para que podamos revisar el post antes de publicarlo.

Establezca el estado de la publicación como Pendiente de revisión o Borrador

Configuración de la notificación por correo electrónico para el envío de mensajes

A continuación, es hora de añadir el fragmento de código que enviará un correo electrónico al autor cuando se publique la entrada. Para ello, tendrás que añadir un fragmento de código a tu sitio.

Si necesita ayuda para añadir fragmentos de código a su sitio, 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' );

Lo que hará este snippet es que a medida que se actualice el estado Publicado en la entrada, buscará al autor con ese Nombre, si lo encuentra obtendrá la Dirección de Email asociada a ese usuario y enviará el mensaje que se introduzca en el snippet.

Cambia el mensaje por el que quieras cuando se publique el post

Puedes actualizar este mensaje que irá al autor a lo que quieras. En este ejemplo, estamos estableciendo el asunto del correo electrónico al título del post, así como la inclusión de que el título del post y su permalink dentro de la notificación por correo electrónico.

Nota: Si varios autores utilizan el mismo nombre, este fragmento utilizará el primer nombre que encuentre.

Y eso es todo, cuando se publique el post, el autor recibirá una notificación por correo electrónico sobre el envío de su post.

ejemplo de notificación por correo electrónico del envío de un mensaje

¿Te gustaría que el addon Post Submission creara un perfil de usuario para ti? Echa un vistazo a nuestro tutorial sobre Cómo crear un formulario de perfil utilizando envíos de mensajes.