Requirements & Compatibility

TableCrafter 3.5.6 runs on PHP 8.0+ and WordPress 5.0+ (tested through 7.0), works with any theme through three rendering paths, and has only one hard hosting dependency: the PHP ZipArchive extension, used for genuine Excel export.

PHP 8.0+ WordPress 5.0–7.0 Gutenberg + Elementor Theme-agnostic Multisite-friendly

At a Glance

The values below are read directly from the plugin header (tablecrafter.php) and the WordPress.org metadata (readme.txt). They are enforced, not aspirational.

RequirementMinimumTested / Recommended
PHP8.0.0 Required8.1–8.3 (CI matrix runs 8.0–8.3)
WordPress5.0Tested up to 7.0
MySQL / MariaDBWordPress defaultNo custom tables created
ZipArchive (PHP ext)For XLSX export onlyBundled on most hosts
ElementorOptional3.5.0+ for the native registration hook

PHP Version

TableCrafter requires PHP 8.0 or higher. This is a hard gate enforced at the top of the main plugin file before any other code loads:

if (version_compare(PHP_VERSION, '8.0.0', '<')) {
    // Shows an admin notice and aborts loading the plugin
    add_action('admin_notices', function () { /* ... */ });
    return;
}
âš ī¸

On PHP 7.x the plugin will not run. WordPress stays active and you see a red admin notice (“This plugin requires PHP 8.0 or higher”), but no shortcodes, blocks, or the admin menu are registered. Upgrade PHP, then reload wp-admin.

WordPress Version & Rendering Paths

The minimum supported WordPress version is 5.0 and the plugin is tested up to 7.0. There are three ways to place a table, each with its own floor:

MethodHow it registersMinimum WP
[tablecrafter]add_shortcode('tablecrafter', ...)Any classic or block theme
tablecrafter/data-tableregister_block_type() (Gutenberg block)5.0 (block editor)
Elementor widgetelementor/loaded + widget hooksElementor installed

The shortcode is the universal fallback. The Gutenberg block guards itself with if (!function_exists('register_block_type')) return;, so on a pre-5.0 install the block simply does not register while the shortcode keeps working.

<!-- Universal shortcode: works in any theme, any builder content area -->
[tablecrafter source="https://example.com/data.json" search="true" per_page="10"]

// Or render it from a PHP template file:
echo do_shortcode('[tablecrafter source="https://example.com/data.json"]');

Theme Compatibility

TableCrafter is theme-agnostic. It renders a standard <table class="tc-table"> inside a <div class="tablecrafter-container"> wrapper and ships its own stylesheet, so it does not depend on theme markup. Block themes (Twenty Twenty-Five), classic themes, and page-builder themes (Astra, Kadence, Hello Elementor, GeneratePress) all work because every output path funnels through the same shortcode renderer.

Styling is overridable two ways without touching plugin files:

/* Re-skin tables to match your theme */
.tablecrafter-container {
  --tc-border-color: #1d4ed8;
  --tc-text-color: #0f172a;
  --tc-bg-color: #ffffff;
}

On mobile the renderer reflows tables into card layouts using an intelligent breakpoint system: ≤768px mobile, 768–900px tablet, >900px desktop. This is automatic and theme-independent.

Page Builder Compatibility

Gutenberg (Block Editor)

The native block tablecrafter/data-table registers a render_callback that bridges straight into the shortcode engine, so the published output is identical to the shortcode. It exposes sidebar controls for source, root, include, exclude, search, filters, per_page, export, and the auto-refresh options. Requires WordPress 5.0+.

Elementor

The Elementor widget is loaded lazily on the elementor/loaded action and the widget class is only defined when \Elementor\Widget_Base exists, so a site without Elementor never loads that code and cannot fatal because of it.

💡

Other builders (Beaver Builder, Bricks, Divi, WPBakery) are supported through their shortcode/HTML modules — drop a [tablecrafter ...] shortcode into any text or shortcode element and it renders the same as everywhere else.

Hosting Requirements

TableCrafter is a lightweight data viewer: it creates no custom database tables and stores fetched data only in transients (SWR caching). The practical hosting checklist is short:

â„šī¸

PDF export is generated natively as a valid PDF 1.4 document — no TCPDF, mPDF, or other library install is needed. XLSX is a genuine OOXML workbook built with ZipArchive, not a renamed CSV. Both come from the canonical includes/class-tc-export-handler.php.

Multisite Compatibility

TableCrafter runs on WordPress Multisite. It registers the same shortcode, block, and Elementor widget per site, and because it stores no custom tables there is no schema to provision per blog. The only network-aware logic is in the post-activation welcome redirect, which deliberately skips the Network Admin context:

if (is_network_admin()) {
    return; // don't fire the welcome redirect at network level
}

Practical notes for network operators:

Where to Find It in wp-admin

After activation, look for the TableCrafter entry in the left admin sidebar (table icon, dashicons-editor-table).

Both pages require the manage_options capability (Administrators by default).

Pre-Install Checklist

  1. Confirm PHP is 8.0+ (Tools → Site Health → Info → Server).
  2. Confirm WordPress is 5.0+ (7.0 is the latest tested).
  3. If you need Excel export, verify the ZipArchive extension is enabled.
  4. If you use Elementor, run 3.5.0+ for the modern widget registration.
  5. Ensure your host permits outbound HTTP requests so the proxy can fetch remote sources.

Next, head to installation.html to install and activate the plugin, then build your first table with the quick-start.html guide.