How to Enable Inline Editing in a WordPress Table

Updated June 2026 • 7 min read

Inline editing turns a read-only data table into a live spreadsheet your team can update without leaving the page. TableCrafter's inline edit feature writes changes directly back to Gravity Forms entries via the GF API, which means every edit is stored in the same place your original form submissions live. This guide walks through the complete setup from plugin install to first successful cell edit.

What You Need Before You Start

Inline editing in TableCrafter requires the Pro tier Pro. Make sure you have:

Free tier note: The free version of TableCrafter Free renders tables in read-only mode. The edit="true" shortcode parameter is recognized but silently ignored without a Pro license. Activate your license key under TableCrafter → Settings → License before proceeding.

Step 1: Install and Activate TableCrafter Pro

If you haven't installed the plugin yet, go to Plugins → Add New → Upload Plugin and upload the tablecrafter-pro.zip file you downloaded from your account dashboard. Activate it, then navigate to TableCrafter → Settings → License and paste your license key. A green checkmark confirms the license is valid.

With Gravity Forms already active, TableCrafter will automatically detect your forms. You do not need to configure a connection manually — the plugin reads from the Gravity Forms database tables directly.

Step 2: Create a Table Configuration

Go to TableCrafter → Tables → Add New. This opens the table builder.

  1. Select your form from the Source dropdown. TableCrafter lists every active Gravity Forms form on the site.
  2. Choose columns by dragging fields from the Available Fields panel into the Columns panel. Each field you add becomes one column in the rendered table.
  3. Set the Display Label for each column. This is what users see as the column header — it does not have to match the Gravity Forms field label.
  4. Mark columns as editable. In the column settings panel, toggle the Allow Inline Edit switch for any column you want users to be able to change. Columns without this toggle remain read-only even when the table is in edit mode.
  5. Save the table. TableCrafter assigns a numeric ID (e.g., id="3") that you'll use in the shortcode.
Selective editability: You don't have to make every column editable. A common pattern is to make Status and Assigned To editable while keeping fields like Submission Date and Entry ID read-only. Users can see all the data but only change the fields that actually need updating.

Step 3: Enable the Edit Parameter in the Shortcode

Once your table is saved, place the shortcode on any page or post. The minimal shortcode looks like this:

[tablecrafter id="3"]

That renders the table in read-only mode. To activate inline editing, add the edit="true" parameter:

[tablecrafter id="3" edit="true"]

You can combine it with other parameters. A full-featured shortcode for a team operations table might look like:

[tablecrafter id="3" edit="true" filter="true" search="true" export="true"]

Each parameter is independent. filter="true" adds column filter dropdowns, search="true" adds a search bar, and export="true" adds a CSV export button. None of these affect the edit functionality.

Step 4: Test a Cell Edit

Visit the page where you placed the shortcode while logged in as an Administrator or a role you've granted edit permissions. You should see the table rendered with your data. Hover over a cell in an editable column — the cursor changes to a text cursor and a subtle highlight appears on the cell.

Click the cell. The cell enters edit mode: the static text is replaced by an input field (or a dropdown for choice fields, a date picker for date fields). Type a new value and press Enter to save, or press Escape to cancel without saving.

After pressing Enter, you'll see a brief spinner inside the cell while TableCrafter sends the update. The spinner disappears and the new value appears. No page reload happens.

What Happens Under the Hood

When a user confirms an edit, TableCrafter fires a JavaScript fetch request to wp-admin/admin-ajax.php with the action gt_update_entry. The payload includes the table ID, the Gravity Forms entry ID, the field ID being updated, and the new value.

On the server side, TableCrafter's AJAX handler validates the request (nonce check, capability check, per-column editability check), then calls GFAPI::update_entry_field() with the entry ID, field ID, and sanitized new value. Gravity Forms handles the write to the wp_gf_entry_meta or wp_gf_entry_values database table depending on your GF version.

This means every inline edit creates a proper Gravity Forms entry update — complete with GF's own update hooks firing. Any notification, feed, or plugin that hooks into gform_after_update_entry will respond to inline edits exactly as it would to a manual edit inside the GF entries screen.

Entry ownership: TableCrafter's AJAX handler enforces that the current user can only edit entries they have permission to see. If your table uses an entry filter (e.g., only showing entries created by the current user), users cannot craft a request to edit someone else's entry — the server-side check rejects it regardless of what the client sends.

Troubleshooting Common Setup Issues

Edit Mode Does Not Appear

If clicking a cell does nothing, check three things in order: (1) confirm your Pro license is active under TableCrafter → Settings → License; (2) confirm the specific column has Allow Inline Edit toggled on in the table builder — not just the shortcode parameter; (3) confirm the current user's role is listed under Allowed Edit Roles in the table config.

Changes Save But Revert After Reload

This is almost always a caching issue. If you're running a page cache (WP Rocket, LiteSpeed Cache, NitroPack), the cached HTML will show old values. Exclude the page from full-page caching, or configure your cache plugin to skip caching for logged-in users. TableCrafter loads data via AJAX after the initial page load, so object cache hits on GF queries can also cause this — clear the object cache after testing.

Spinner Appears Then Disappears Without Saving

Open your browser's developer tools, go to the Network tab, and look for the admin-ajax.php call after your next edit attempt. A 403 response means a nonce or capability failure — make sure you're logged in and that your session hasn't expired. A 500 response points to a PHP error; check your WordPress debug log at wp-content/debug.log.

Next Steps

With inline editing enabled, you have a live editable table wired directly to Gravity Forms. From here, consider adding validation rules to prevent bad data from entering your system (see the guide on inline edit validation), restricting which roles can edit which columns (see role-gated inline editing), or enabling the diff badge feature so you can audit which cells have been changed in a session. The shortcode you placed today is the foundation every other inline editing feature builds on.

Ready to try it?

TableCrafter is free on WordPress.org. Pro unlocks inline editing, role-based permissions, and advanced data sources.