Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
WPB Cup
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

How to Display WordPress Form Entries on Your Site

Displaying your WordPress form entries on the front end of your site can make it more interactive and engaging.

This approach lets you show important information right where visitors can see it. For example, you can use this feature to highlight positive reviews, create directories, display event calendars, and much more.

In this article, we’ll guide you through the steps to display WordPress form entries on your site.

How to Display WordPress form entries on your site

Why Display WordPress Form Entries on the Frontend?

Forms are great for keeping in touch with your visitors, getting feedback and suggestions, helping users resolve their issues, and more. Displaying form entries on your WordPress website for your visitors can be helpful in certain situations.

For example, you can display testimonials and product reviews that users submit through an online form. This way, you can leverage social proof to build brand trust and boost conversions.

You can also display form entries to create a business directory, display user-submitted events on a calendar, display statistics, and show other important information collected through online forms on your website. It’s a great way to provide valuable social proof for your products and services while adding credibility to your business.

However, when users submit a form on your WordPress website, their entries are kept private by default. Only the WordPress admin and other users who have permission can view the form entries.

In the following sections, we’ll share how you can show form entries on the front end of your WordPress website using Formidable Forms and WPForms. You can click the links below to jump ahead to your preferred section:

Ready? Let’s start with the video tutorial.

Video Tutorial

Subscribe to WPBeginner

If you’d prefer written instructions, then just keep reading.

Method 1: Displaying WordPress Form Entries by Using Formidable Forms

The easiest way to show form entries in WordPress is by using Formidable Forms. It’s a popular WordPress contact form plugin and offers an all-in-one form builder with lots of customization features.

You can create all kinds of forms, such as surveys, quizzes, payment forms, and advanced forms like event calendars, directories, and calculators.

To get started, let’s install and activate the Formidable Forms plugin on your site. If you need help, then please see our guide on how to install a WordPress plugin.

For this tutorial, we’ll use the Formidable Forms Pro version because it includes the ‘Visual Views’ addon.

Upon activation, you can go to Formidable » Forms and click the ‘+ Add New’ button at the top.

Add a new form

After that, a popup will appear asking you to select a form type, such as a contact form, user registration form, survey, or other.

Go ahead and select your preferred form type. For this tutorial, we’ll create a contact form to collect testimonials from users.

Select your form type

Next, you’ll need to enter a form name and description.

When you’re done, simply click the ‘Create’ button.

Enter form name and description

Now, you can use the form builder to customize your form.

Formidable offers a drag-and-drop builder that is super easy to use. Simply select any form field you would like to add to your form from the options on the left and place it in the form template.

Build your form

After customizing, you can embed the form anywhere on your website.

The plugin offers multiple options for adding your form. The easiest way is to click the ‘Embed’ button in the form builder at the top, and then select an existing page or create a new page to add your form.

Alternatively, you can use a ‘Formidable Forms’ block or a shortcode block in the WordPress content editor to embed your forms.

For this tutorial, we’ll choose the ‘Create new page’ option.

Embed your form in a new page

Once you’re inside the content editor, you’ll see that you have created a dedicated page for your Formidable Forms form.

Before making it live, you might want to preview it by clicking the ‘Preview’ button.

When you’re satisfied with its appearance, go ahead and publish your page.

Preview and publish your form

After your form is live and you start receiving entries, you’ll want to install and activate the ‘Visual Views’ add-on in Formidable Forms.

To do that, simply go to Formidable » Add-Ons from your WordPress dashboard. Next, you can scroll down to the ‘Visual Views’ addon and click the ‘Install’ button.

Install visual views addon

Once the addon is active, you can go to Formidable » Views from your WordPress dashboard.

Then, go ahead and click the ‘+ Add New’ button at the top.

Add a new view

A popup window will appear. Here, you’ll need to select a view type, such as grid, table, calendar, and classic view.

For this tutorial, we’ll choose the ‘Grid’ view to show form entries.

Select a view type

The next step is to select a data source for your view.

Go ahead and click on the ‘Use Entries from Form’ dropdown menu to select your form. You can also enter a view name.

After selecting your data source, simply click the ‘Create a view’ button.

Select data source

This will launch the view builder in Formidable Forms.

To get started, go ahead and click the ‘Layout Builder’ button.

Select a layout builder

Next up, you’ll need to select a layout to display your form entries.

Simply choose a layout from the given options at the top. You can add multiple layouts to show form entries.

Build your layout

After selecting a layout, go ahead and click the ‘Save layout’ button.

You can then add content to the view builder by clicking the ‘+’ button. There are options to customize the layout of the form entries and add content before and after the form entries.

The plugin also gives options to change the typography, background color, border, and more under the ‘Grid Style Settings’ panel on your left.

You’ll also see a shortcode under the ‘View Name’ field, which you’ll need when showing form entries on your site.

Add content to the view

There are more advanced options in the ‘Grid Style Settings’ panel. In the advanced settings, you can limit the number of entries, page size, and more.

When you’ve customized the view, don’t forget to click the ‘Update’ button at the top.

Next, you’ll need to display your form entries on your WordPress website. To do that, copy the shortcode given under the ‘View Name.’

The shortcode will look like this:

[display-frm-data id=2410]

Once you’ve copied the shortcode to the clipboard, you can go to any post or page where you’d like to display form entries. In the content editor, simply add a ‘Shortcode’ block.

Select shortcode block

Now, enter the shortcode you copied earlier in the shortcode block.

After that, you might want to preview the page before publishing it.

Enter the shortcode

You can now visit your website to see the form entries in action.

Here’s what they look like on our demo website:

Form entries preview

Method 2: Displaying WordPress Form Entries by Using WPForms

Another way of displaying form entries on the front end of your WordPress website is through WPForms. However, this method requires editing code and is recommended for advanced users who have knowledge about coding.

WPForms is the best contact form plugin for WordPress and lets you create different types of forms using a drag-and-drop form builder.

Important Note: If you want to see your form entries in the WordPress dashboard, then you’ll need the WPForms Pro version. There is also a WPForms Lite version that you can use for free, which sends email notifications of all your form entries.

First, you’ll need to install and activate the WPForms plugin. For more details, please see our guide on how to install a WordPress plugin.

Upon activation, you can start creating an online form using WPForms. You can check out our step-by-step guide on how to create a contact form in WordPress.

Once you start to get form entries, you’ll need to enter the following code into your theme’s functions.php file. But do note that doing so can break your website if you make even a small mistake, so we recommend using WPCode.

Please see our guide on how to easily add custom code in WordPress for more information.

/**
 * Custom shortcode to display WPForms form entries in table view.
 *
 * Basic usage: [wpforms_entries_table id="FORMID"].
 * 
 * Possible shortcode attributes:
 * id (required)  Form ID of which to show entries.
 * user           User ID, or "current" to default to current logged in user.
 * fields         Comma separated list of form field IDs.
 * number         Number of entries to show, defaults to 30.
 * 
 * @link https://wpforms.com/developers/how-to-display-form-entries/
 *
 * Realtime counts could be delayed due to any caching setup on the site
 *
 * @param array $atts Shortcode attributes.
 * 
 * @return string
 */
 
function wpf_entries_table( $atts ) {
 
    // Pull ID shortcode attributes.
    $atts = shortcode_atts(
        [
            'id'     => '',
            'user'   => '',
            'fields' => '',
            'number' => '',
                        'type' => 'all' // all, unread, read, or starred.
        ],
        $atts
    );
 
    // Check for an ID attribute (required) and that WPForms is in fact
    // installed and activated.
    if ( empty( $atts['id'] ) || ! function_exists( 'wpforms' ) ) {
        return;
    }
 
    // Get the form, from the ID provided in the shortcode.
    $form = wpforms()->form->get( absint( $atts['id'] ) );
 
    // If the form doesn't exists, abort.
    if ( empty( $form ) ) {
        return;
    }
 
    // Pull and format the form data out of the form object.
    $form_data = ! empty( $form->post_content ) ? wpforms_decode( $form->post_content ) : '';
 
    // Check to see if we are showing all allowed fields, or only specific ones.
    $form_field_ids = isset( $atts['fields'] ) && $atts['fields'] !== '' ? explode( ',', str_replace( ' ', '', $atts['fields'] ) ) : [];
 
    // Setup the form fields.
    if ( empty( $form_field_ids ) ) {
        $form_fields = $form_data['fields'];
    } else {
        $form_fields = [];
        foreach ( $form_field_ids as $field_id ) {
            if ( isset( $form_data['fields'][ $field_id ] ) ) {
                $form_fields[ $field_id ] = $form_data['fields'][ $field_id ];
            }
        }
    }
 
    if ( empty( $form_fields ) ) {
        return;
    }
 
    // Here we define what the types of form fields we do NOT want to include,
    // instead they should be ignored entirely.
    $form_fields_disallow = apply_filters( 'wpforms_frontend_entries_table_disallow', [ 'divider', 'html', 'pagebreak', 'captcha' ] );
 
    // Loop through all form fields and remove any field types not allowed.
    foreach ( $form_fields as $field_id => $form_field ) {
        if ( in_array( $form_field['type'], $form_fields_disallow, true ) ) {
            unset( $form_fields[ $field_id ] );
        }
    }
 
    $entries_args = [
        'form_id' => absint( $atts['id'] ),
    ];
 
    // Narrow entries by user if user_id shortcode attribute was used.
    if ( ! empty( $atts['user'] ) ) {
        if ( $atts['user'] === 'current' && is_user_logged_in() ) {
            $entries_args['user_id'] = get_current_user_id();
        } else {
            $entries_args['user_id'] = absint( $atts['user'] );
        }
    }
 
    // Number of entries to show. If empty, defaults to 30.
    if ( ! empty( $atts['number'] ) ) {
        $entries_args['number'] = absint( $atts['number'] );
    }
 
// Filter the type of entries all, unread, read, or starred
    if ( $atts['type'] === 'unread' ) {
        $entries_args['viewed'] = '0';
    } elseif( $atts['type'] === 'read' ) {
        $entries_args['viewed'] = '1';
    } elseif ( $atts['type'] === 'starred' ) {
        $entries_args['starred'] = '1';
    }
 
    // Get all entries for the form, according to arguments defined.
    // There are many options available to query entries. To see more, check out
    // the get_entries() function inside class-entry.php (https://a.cl.ly/bLuGnkGx).
    $entries = wpforms()->entry->get_entries( $entries_args );
 
    if ( empty( $entries ) ) {
        return '<p>No entries found.</p>';
    }
 
    ob_start();
 
    echo '<table class="wpforms-frontend-entries">';
 
        echo '<thead><tr>';
 
            // Loop through the form data so we can output form field names in
            // the table header.
            foreach ( $form_fields as $form_field ) {
 
                // Output the form field name/label.
                echo '<th>';
                    echo esc_html( sanitize_text_field( $form_field['label'] ) );
                echo '</th>';
            }
 
        echo '</tr></thead>';
 
        echo '<tbody>';
 
            // Now, loop through all the form entries.
            foreach ( $entries as $entry ) {
 
                echo '<tr>';
 
                // Entry field values are in JSON, so we need to decode.
                $entry_fields = json_decode( $entry->fields, true );
 
                foreach ( $form_fields as $form_field ) {
 
                    echo '<td>';
 
                        foreach ( $entry_fields as $entry_field ) {
                            if ( absint( $entry_field['id'] ) === absint( $form_field['id'] ) ) {
                                echo apply_filters( 'wpforms_html_field_value', wp_strip_all_tags( $entry_field['value'] ), $entry_field, $form_data, 'entry-frontend-table' );
                                break;
                            }
                        }
 
                    echo '</td>';
                }
 
                echo '</tr>';
            }
 
        echo '</tbody>';
 
    echo '</table>';
 
    $output = ob_get_clean();
 
    return $output;
}
add_shortcode( 'wpforms_entries_table', 'wpf_entries_table' );

Once you’ve added the code to your website using the free WPCode plugin, you’ll need to enter the following shortcode to any page or post to show form entries.

Simply copy this shortcode to the clipboard:

[wpforms_entries_table id="FORMID"]

Just replace the FORMID with your form’s ID.

You can find the form ID by going to WPForms » All Forms and then looking at the Shortcode column.

Find WPForms form ID

To add a shortcode, simply create a new page or edit an existing one.

Next, go ahead and add a ‘Shortcode’ block.

Select shortcode block

After adding the block, simply enter your shortcode.

Now preview your WordPress page and click the ‘Publish’ button at the top.

Enter shortcode to show form entries

And that’s all there is to it!

Here’s what the preview of our form entries looked like on the front end:

Display WPForms Entries on Front End

You can further customize the display using custom CSS styles as needed.

Bonus Tip: Creating GDPR-Compliant Forms

The General Data Protection Regulation (GDPR) is a law in the European Union that started on May 25th, 2018. It’s all about giving people in the EU more control over their personal data and making sure companies handle this data properly.

If you have a WordPress site, it probably collects user info, especially through forms. To make sure your forms follow GDPR rules, you should:

  1. Get explicit consent: Ask users if it’s okay to store and use their personal info.
  2. Access requests: Let users see the personal information you have about them.
  3. Deletion requests: Allow users to ask for their data to be deleted from your site.
GDPR-compliant form example

For more details, you can check out our guide on how to create GDPR-compliant forms in WordPress. It’ll answer all your questions in easy-to-understand language.

We hope that this article helped you learn how to display WordPress form entries on your site. You may also want to see our guides on how to create an online order form and how to add a coupon code field to your forms.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Disclosure: Our content is reader-supported. This means if you click on some of our links, then we may earn a commission. See how WPBeginner is funded, why it matters, and how you can support us. Here's our editorial process.

Editorial Staff

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

The Ultimate WordPress Toolkit

Get FREE access to our toolkit - a collection of WordPress related products and resources that every professional should have!

Reader Interactions

3 CommentsLeave a Reply

  1. Dennis Muthomi

    Nice article on showing WordPress form entries! The Formidable Forms section was super helpful. I used this method for a client’s testimonial page and it worked like a charm. One more tip: consider adding a moderation step before entries are shown publicly especially for user generated content. That extra layer of control will help keep the entries relevant and quality and prevent spam or inappropriate content.

  2. Melanie

    I made this table for a front end page for a Wpforms form. But I’d like to add a filter where users can select date range like you see on the back end when you view entries. How can I do that?? Thanks!

    • WPBeginner Support

      We don’t have a recommended method at the moment but should that change we will be sure to share!

      Admin

Leave A Reply

Thanks for choosing to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and your email address will NOT be published. Please Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.