Bulk Column Fill

TableCrafter table builder, connect Gravity Forms, Google Sheets, Airtable, CSV, or JSON data sources
TableCrafter table builder, connect Gravity Forms, Google Sheets, Airtable, CSV, or JSON data sources

Select any number of rows in your table, choose a field, type a value, and write that value to every selected Gravity Forms entry in a single click. What used to mean opening entries one by one now takes seconds.

✦ Pro Gravity Forms Bulk Actions Inline Editing Entry Management

Requires TableCrafter Pro. Bulk Column Fill is not available on the free tier. The row checkboxes and Fill Column toolbar button will only appear when a Pro license is active and the current user holds the edit_tablecrafter_entries or manage_options capability. See Licensing & Activation to enable Pro.

What It Does and Why It Saves Time

Inline editing is powerful for changing one cell at a time, but operations that touch many rows at once, marking a batch of orders as Shipped, assigning a category to a week's worth of submissions, or correcting a field that was left blank across an entire import, require a different tool. That is what Bulk Column Fill is for.

Instead of opening each Gravity Forms entry individually in the WordPress admin, you stay in your TableCrafter frontend table, check the rows you want to update, choose the target field from a dropdown, type the new value, and click Apply. TableCrafter writes to the Gravity Forms database for every selected entry in one server round-trip. The table refreshes in place; no page reload is needed.

Common scenarios where this pays off immediately:

Step-by-Step: How to Use Bulk Column Fill

The workflow is four steps: select rows, open the modal, configure the fill, apply.

  1. Check one or more rows. Each row in a Pro table has a checkbox on the left side. Click individual checkboxes to select specific rows, or use the header checkbox to select every row on the current page. The toolbar above the table updates as soon as at least one row is checked.
  2. Click "Fill Column" in the toolbar. The button appears in the table toolbar only when at least one row is selected. It disappears automatically when all rows are unchecked, keeping the toolbar uncluttered when bulk actions are not in use.
  3. Choose a column and enter a value in the modal. The Fill Column modal contains two inputs: a dropdown listing every editable column configured for this table, and a text field for the value you want to write. Choose the target field from the dropdown, then type the value. As you type, the Apply button label updates to show exactly what will happen (see the Diff Preview section below).
  4. Click Apply. TableCrafter sends a single authenticated request to the server. The plugin verifies your capability, then calls the Gravity Forms API to update the chosen field for every selected entry ID. The modal closes, the table rows refresh with the new values, and the checkboxes reset.
💡

Combine with filtering for precision. Use TableCrafter's built-in filters to narrow the table to exactly the rows you want before selecting them. For example, filter by Status = "Pending", then use the header checkbox to select all visible rows, then bulk-fill Status to "Processing". Only the filtered rows are selected; rows on other pages or hidden by the filter are never touched.

Diff Preview: Confirm Before You Commit

Bulk writes are irreversible through the TableCrafter UI, so the plugin includes a diff preview to make sure you know exactly what you are about to do before you click Apply.

As you type in the value field inside the Fill Column modal, the Apply button label updates in real time to show the scope of the operation:

/* Button label while typing "Shipped" with 15 rows selected */
Apply to 15 rows  "Shipped"

The label reflects the current selection count and the current value in the input, live. If you change the value or check additional rows while the modal is open, the button label follows along. This makes it easy to catch mistakes, wrong column selected, wrong value typed, more rows checked than intended, before any data is written.

The diff preview was introduced in v6.4.9 and applies to all field types supported by the fill operation.

The diff preview shows the number of currently selected rows, not the total number of entries in the table. If you have 200 entries but only 12 checked, the button will say "Apply to 12 rows". The operation only ever touches rows that are explicitly checked.

Capability Requirements

Bulk Column Fill is gated on the server side. The AJAX handler performs a capability check on every request, regardless of what the frontend shows. A user must hold at least one of the following WordPress capabilities to execute a fill operation:

Capability Typical holder Notes
edit_tablecrafter_entries Custom editor roles TableCrafter-specific capability; grant via a role editor plugin to give non-admin users bulk write access without full admin privileges.
manage_options WordPress Administrator Standard WordPress admin capability. All site administrators can use Bulk Column Fill by default.

If a request arrives from a user without either capability, the server returns a permission error and no entries are modified. The frontend checkboxes and Fill Column button are also hidden from users who do not hold the required capability, so the UI and the server stay in sync.

To grant bulk-fill access to non-admin users, for example, a logistics manager role on a load tracking form, install a role management plugin such as User Role Editor and add the edit_tablecrafter_entries capability to the relevant role. No code changes are needed.

What Happens Server-Side

When you click Apply, TableCrafter sends the selected entry IDs, the target field ID, and the new value to a WordPress AJAX endpoint. The server-side handler does the following in sequence:

  1. Nonce verification. The request is validated against a per-page nonce to prevent cross-site request forgery.
  2. Capability check. The current user is checked for edit_tablecrafter_entries or manage_options. Requests that fail this check are rejected immediately.
  3. Entry ownership check. Each submitted entry ID is verified to belong to the form associated with the current table configuration. This prevents a crafted request from writing to entries on unrelated forms.
  4. Gravity Forms API write. For each verified entry ID, TableCrafter calls GFAPI::update_entry_field() with the target field ID and the new value. Gravity Forms handles all its own hooks, field-level save hooks, entry update notifications, and any conditional logic side effects, exactly as it would for a manual entry edit in the WordPress admin.
  5. Response. The handler returns a success count and an array of any entry IDs that failed. The frontend surfaces a brief confirmation (or error message) and refreshes the affected rows.

Because TableCrafter delegates the actual write to GFAPI::update_entry_field(), Gravity Forms' own data integrity guarantees apply. The value is stored in the wp_gf_entry_meta table using the standard Gravity Forms schema.

Limitations and Edge Cases

Bulk Column Fill is designed for speed and directness. A few constraints are worth knowing before you use it in production:

Test bulk operations on staging first. Because there is no undo, it is strongly recommended to test Bulk Column Fill on a staging copy of your site before using it in production on large entry sets. Verify the correct column is selected and the correct value is in the input before clicking Apply.

Availability: When This Feature Was Added

Bulk Column Fill shipped in v6.4.4 of the gravity-tables plugin (now TableCrafter). The diff preview on the Apply button was added in v6.4.9. Both are included in all TableCrafter Pro releases from v7.0.0 onward.

You can verify which version is active on your site by going to WordPress Admin > Plugins and checking the version listed next to TableCrafter (gravity-tables), or by navigating to WordPress Admin > TableCrafter > Documentation and reading the "What's New" section.