Cómo enviar notificación por correo electrónico al publicar un envío de formulario

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 publicación cuando su publicación se publique? Cuando cree un formulario para el complemento Envíos de publicaciones, puede establecer el estado de esta publicación en Borrador o Pendiente de revisión cuando se envíe. Esto permite al administrador del sitio revisar el artículo antes de que se publique. Cuando el artículo se publica, el autor no recibe ninguna notificación; sin embargo, al agregar un pequeño fragmento a su sitio, puede enviar fácilmente una notificación al autor para informarle que su publicación acaba de ser publicada.

¡En este tutorial, le guiaremos paso a paso sobre cómo lograr esto!

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

Para este tutorial, ya hemos creado nuestro formulario de publicación de invitados. Pero si necesita ayuda para configurar un formulario con el complemento Envíos de publicaciones, visite esta documentación y le proporcionará pasos detallados sobre cómo crear este formulario.

Una vez que haya creado su formulario, deberá ajustar la configuración. Mientras esté dentro del creador de formularios, haga clic en Configuración y luego haga clic en la pestaña Envíos de publicaciones para editar esta configuración.

Mapearemos campos como el Título de la publicación, la Imagen destacada, etc., pero también cambiaremos el Estado de la publicación a Pendiente de revisión cuando se reciba una entrada para que podamos revisar la publicación antes de publicarla.

Establecer el estado de la publicación en Pendiente de revisión o Borrador

Configuración de la notificación por correo electrónico para envíos de publicaciones

A continuación, es hora de agregar el fragmento de código que enviará un correo electrónico al autor cuando se publique la entrada. Para hacer esto, necesitará agregar un fragmento de código a su 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 fragmento 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 correo electrónico asociada con ese usuario y enviará el mensaje que se ingresa en el fragmento.

Cambie el mensaje a lo que desee cuando se publique la entrada

Puede actualizar este mensaje que irá al autor a lo que desee. En este ejemplo, estamos configurando el Asunto del correo electrónico con el título de la publicación, así como incluyendo ese título de publicación y su permalink dentro de la notificación por correo electrónico.

Nota: Si varios autores usan el mismo nombre, este fragmento irá con el primer nombre que encuentre.

¡Y eso es todo! Cuando se publique la entrada, el autor recibirá una notificación por correo electrónico sobre su envío de publicación.

ejemplo de notificación por correo electrónico al enviar una publicación

¿Le gustaría que el complemento Envío de publicaciones cree un perfil de usuario para usted? Eche un vistazo a nuestro tutorial sobre Cómo crear un formulario de perfil usando Envíos de publicaciones.