Title: Display Form Entries shortcode error
Last modified: September 24, 2020

---

# Display Form Entries shortcode error

 *  Resolved [vilanova](https://wordpress.org/support/users/vilanova/)
 * (@vilanova)
 * [5 years, 8 months ago](https://wordpress.org/support/topic/display-form-entries-shortcode-error/)
 * I’m trying to follow this guidance [https://wpforms.com/developers/how-to-display-form-entries/](https://wpforms.com/developers/how-to-display-form-entries/)(
   putting the code in Code Snippets)
    but when I put it on the site: echo do_shortcode(‘[
   wpforms_entries_table id=”11″]’);
 *  I get the following error:
    There is a critical error on your site.
 * and in my debug.log:
    thrown in /var/www/htdocs/wp-content/plugins/code-snippets/
   php/snippet-ops.php(446): eval () ‘d code on line 99 I believe you want this 
   line $ entries = wpforms () -> entry-> get_entries ($ entries_args);
 * what could be happening?
 * thanks!

Viewing 4 replies - 1 through 4 (of 4 total)

 *  [Jade](https://wordpress.org/support/users/jadeam/)
 * (@jadeam)
 * [5 years, 8 months ago](https://wordpress.org/support/topic/display-form-entries-shortcode-error/#post-13454333)
 * Hello [@vilanova](https://wordpress.org/support/users/vilanova/),
 * I tried the custom code in the dev doc that you link and it worked without an
   issue.
 * By the looks of it, the code might not have been copied correctly in your setup.
   Can you please make sure that you have all the codes in the dev doc copied correctly
   on your site?
 * In case the issue persists, please post the code you have added here. And for
   formatting purposes, please wrap the code that you will post here inside the `
   <pre></pre>` tags.
 * Thank you.
 *  Thread Starter [vilanova](https://wordpress.org/support/users/vilanova/)
 * (@vilanova)
 * [5 years, 8 months ago](https://wordpress.org/support/topic/display-form-entries-shortcode-error/#post-13454367)
 * Hi!
    thanks for the reply. Of course, the code I entered in the Snippet (and 
   a screenshot of it here: [https://tinyurl.com/y4f83skq](https://tinyurl.com/y4f83skq)):
 *     ```
       /**
        * Custom shortcode to display WPForms form entries.
        *
        * 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 seperated list of form field IDs.
        * number         Number of entries to show, defaults to 30.
        * 
        * @link https://wpforms.com/developers/how-to-display-form-entries/
        *
        * @param array $atts Shortcode attributes.
        * 
        * @return string
        */
       function wpf_entries_table( $atts ) {
   
           // Pull ID shortcode attributes.
           $atts = shortcode_atts(
               [
                   'id'     => '',
                   'user'   => '',
                   'fields' => '',
                   'number' => '',
               ],
               $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 = ! empty( $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'] );
           }
   
           // 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' );
       ```
   
 *  [Jade](https://wordpress.org/support/users/jadeam/)
 * (@jadeam)
 * [5 years, 8 months ago](https://wordpress.org/support/topic/display-form-entries-shortcode-error/#post-13469842)
 * Hello [@vilanova](https://wordpress.org/support/users/vilanova/),
 * My apologies for forgetting to mention that the code from the dev doc will only
   work for the Pro (paid) version of WPForms. That is because entries are not stored
   in the Lite version.
 * I hope this clarifies it.
 * Thank you.
 *  [Jade](https://wordpress.org/support/users/jadeam/)
 * (@jadeam)
 * [5 years, 8 months ago](https://wordpress.org/support/topic/display-form-entries-shortcode-error/#post-13498381)
 * Hello [@vilanova](https://wordpress.org/support/users/vilanova/),
 * We haven’t heard back from you in about a week, so I’m going to go ahead and 
   close this thread for now. But if you’d like us to assist further, please feel
   welcome to continue the conversation (please just see my post above).
 * Thanks!

Viewing 4 replies - 1 through 4 (of 4 total)

The topic ‘Display Form Entries shortcode error’ is closed to new replies.

 * ![](https://ps.w.org/wpforms-lite/assets/icon.svg?rev=3254748)
 * [WPForms - Easy Form Builder for WordPress - Contact Forms, Payment Forms, Surveys, & More](https://wordpress.org/plugins/wpforms-lite/)
 * [Frequently Asked Questions](https://wordpress.org/plugins/wpforms-lite/#faq)
 * [Support Threads](https://wordpress.org/support/plugin/wpforms-lite/)
 * [Active Topics](https://wordpress.org/support/plugin/wpforms-lite/active/)
 * [Unresolved Topics](https://wordpress.org/support/plugin/wpforms-lite/unresolved/)
 * [Reviews](https://wordpress.org/support/plugin/wpforms-lite/reviews/)

 * 4 replies
 * 2 participants
 * Last reply from: [Jade](https://wordpress.org/support/users/jadeam/)
 * Last activity: [5 years, 8 months ago](https://wordpress.org/support/topic/display-form-entries-shortcode-error/#post-13498381)
 * Status: resolved