Upgrading & Updates
TableCrafter updates like any WordPress.org plugin and stores nothing in your database, so upgrades are low-risk. This page covers how to update safely, what changes between minor and major releases, PHP/WordPress compatibility, and how the free plugin relates to the paid Pro product.
Current version & requirements
The version you are reading about is TableCrafter 3.5.6. The plugin advertises its supported environment in the header of tablecrafter.php and in readme.txt:
| Requirement | Value | Notes |
|---|---|---|
| Plugin version | 3.5.6 | Defined as the TABLECRAFTER_VERSION constant. |
| WordPress | 5.0 minimum, tested to 7.0 | 5.0+ is needed for the Gutenberg block; the shortcode works on much older themes. |
| PHP | 8.0 or higher | Hard requirement. On PHP 7.x the plugin shows an admin notice and refuses to load. |
TableCrafter dropped all PHP 7 support in v3.5.2. On a server running PHP below 8.0 the plugin's bootstrap runs version_compare(PHP_VERSION, '8.0.0', '<'), prints a "requires PHP 8.0 or higher" admin notice, and stops loading. Confirm your host is on PHP 8.0–8.3 before updating from an older major.
How to update the plugin
TableCrafter ships through the WordPress.org plugin directory, so it updates through the normal WordPress update channel. No license key is required for the free plugin and there is nothing to activate.
- Dashboard one-click: Go to Plugins → Installed Plugins, or Dashboard → Updates, and click Update now when a new version is offered.
- Auto-updates: On Plugins → Installed Plugins, use the Enable auto-updates link in the TableCrafter row to let WordPress apply minor and major releases automatically.
- Manual / WP-CLI: Reinstall over the top of the existing folder, or run the command below.
# Update via WP-CLI
wp plugin update tablecrafter-wp-data-tables
# Or check what is available first
wp plugin status tablecrafter-wp-data-tables
The text-domain / slug is tablecrafter-wp-data-tables. That is the value WP-CLI and the WordPress.org update API use, even though the shortcode tag is the shorter [tablecrafter].
What happens to your data on update
Upgrades are unusually safe because TableCrafter is a viewer, not a data store. It fetches rows live from your source (JSON API, Google Sheet, or CSV) and never copies them into custom database tables.
- No migrations run. The activation hook only sets a one-time welcome-redirect flag (
tc_do_activation_redirect); it does not create or alter tables, so there is no schema step that can fail mid-upgrade. - Your shortcodes are untouched. Pages keep their
[tablecrafter ...]tags exactly as written; an update never rewrites post content. - Caches are version-scoped. Rendered-table transients are keyed with the plugin version baked in (
md5( source . include . ... . TABLECRAFTER_VERSION )), so every upgrade naturally invalidates old cached HTML. You usually do not need to manually clear anything after updating.
If a table still looks stale right after an update (for example a third-party cache or CDN held the page), edit and re-save the page, or wait for the hourly tc_refresher_cron background refresh to repopulate the transient.
Reading the changelog: minor vs. major
TableCrafter follows semantic-versioning conventions in its changelog. Use the version number to gauge how much could change before you click update.
| Change type | Example | What to expect |
|---|---|---|
| Patch (x.y.Z) | 3.5.5 → 3.5.6 | Bug fixes, copy/UX tweaks, packaging hygiene. The 3.5.6 export-integrity fix is a good example. Safe to apply directly. |
| Minor (x.Y.0) | 3.4.0 → 3.5.0 | New, backward-compatible features (e.g. mobile-first cards in 3.2.0, virtual scrolling in 3.1.0). Existing shortcodes keep working; new attributes default to off. |
| Major (X.0.0) | 2.9.0 → 3.0.0 | Larger shifts and occasional breaking changes (3.0.0 added full WCAG 2.1 AA; 3.5.2 raised the PHP floor to 8.0). Read the changelog and test on staging first. |
Two release lines are worth calling out because they changed behavior rather than just adding features:
- 3.5.2 — Minimum PHP raised to 8.0. This is the one release that can stop the plugin from loading if your server is too old.
- 3.5.3 and 3.5.6 — The export pipeline was rebuilt. Excel and PDF exports now produce genuine
.xlsx(OOXML) and PDF 1.4 files viaincludes/class-tc-export-handler.php, replacing earlier output that was HTML mislabeled with those extensions. If you relied on the export button, prefer 3.5.6 or later.
The Upgrade Notice block in readme.txt flags releases that warrant urgent attention — for example the 2.2.14 SSRF security patch ("update immediately") and the 3.2.2 Elementor activation fatal-error fix. WordPress surfaces these notices on the Plugins screen.
Your shortcodes are forward-compatible
Because every release keeps the existing [tablecrafter] attributes intact, a table you build today keeps rendering after future updates. The attributes parsed by the render handler are stable:
| Attribute | Required? | Purpose |
|---|---|---|
| source | Required | URL of the JSON, CSV, or public Google Sheet to display. |
| search | Optional | Show the search box. Default false. |
| filters | Optional | Auto-detected column filters. Default true. |
| export | Optional | Show the CSV/Excel/PDF export menu. Default false. |
| per_page | Optional | Rows per page (0 = no pagination). |
| sort | Optional | Initial sort as column:direction, e.g. price:desc. |
| auto_refresh | Optional | Periodically re-fetch the source. Default false. |
A typical table written against any 3.x release looks like this and will keep working across updates:
[tablecrafter source="https://api.example.com/products.json"
search="true" export="true"
per_page=25 sort="price:desc"]
The same configuration is also available without code through the Gutenberg block (tablecrafter/data-table) and the Elementor "TableCrafter Data Table" widget, both of which read the identical attribute set.
Free vs. Pro: what "upgrade" actually means
There is a common point of confusion here. The free TableCrafter plugin does not have a premium license key that unlocks hidden features inside the same plugin. Instead, "Pro" refers to a separate companion product:
- TableCrafter (free): displays JSON / CSV / Google Sheet sources as accessible, exportable tables. Fully functional on its own — search, filters, sorting, pagination, auto-refresh, and real XLSX/PDF export are all included.
- Advanced Data Tables for Gravity Forms (Pro, formerly Gravity Tables): a paid Freemius product aimed at editing Gravity Forms entries. It adds frontend editing, role-based permissions, bulk actions, advanced/logic filters, and conditional formatting.
So moving "free to Pro" is installing a different, complementary plugin — not entering a key into TableCrafter. The Pro product is sold with a 7-day free trial (you can cancel before it ends; a reminder email goes out two days prior). You can run both side by side.
The "Free Guide: 50+ Data Source Ideas" lead form on the welcome screen is exactly that — a free email guide of data-source examples. As of 3.5.6 its copy was corrected so it no longer implies any bundled premium sources.
Recommended update workflow
- Read the changelog for the target version (and any you are skipping) in Plugins → View details, watching for the major-version and PHP-floor notes above.
- Confirm PHP 8.0+ on the server if you are crossing the 3.5.2 boundary.
- Update on staging first for major versions; load a page that uses
[tablecrafter]and verify the table, filters, and export still behave. - Apply to production via one-click update or auto-updates.
- Spot-check a live table. Because caches are version-scoped, the first render after the update re-fetches the source; confirm rows appear and the export menu produces a real file.
Need to verify a rendered table after updating? In the browser console set window.TABLECRAFTER_DEBUG = true and reload — the frontend script logs fetch and render activity so you can confirm the new version is fetching your tablecrafter-container source correctly.
Downgrading & clean removal
If a release introduces a regression, you can roll back by reinstalling the previous version's ZIP from the WordPress.org "Advanced View" / "Previous versions" section. Since no schema migration ran on the way up, there is nothing to reverse — your shortcodes and sources are unaffected.
Deleting the plugin (not just deactivating) triggers uninstall.php, which cleans up after itself: it removes TableCrafter options (tablecrafter_settings, tc_tracked_urls, the redirect flag, and the stored tablecrafter_version), deletes all tc_cache_* / tc_html_* / tc_export_* transients, unschedules the cron event, and purges temporary export files. Reinstalling later starts from a clean slate.
Next steps: If you are setting up TableCrafter for the first time after updating, see installation.html; to learn the full attribute reference for your tables, see shortcode-reference.html.