🌍 WORKS WITH EVERY WORDPRESS SITE EVER CREATED + Elementor Live Preview!
The ONLY WordPress table plugin with UNIVERSAL compatibility! Three powerful integration methods (Gutenberg Block, Universal Shortcodes, Elementor Widget) ensure TableCrafter works with EVERY WordPress theme and version since 3.0. Plus exclusive live preview in Elementor editor! Transform any Google Sheet, JSON API, or CSV into beautiful, responsive WordPress data tables - regardless of your WordPress setup!
- Live Data Preview: See actual table data while designing in Elementor editor - WYSIWYG perfection!
- Performance Optimized: Smart row limiting ensures smooth editor experience with large datasets
- Feature Indicators: Visual badges show enabled features (search, filters, export, auto-refresh)
- Zero Friction Workflow: Eliminates preview/publish cycles - design with confidence!
- Real-time Configuration: All settings update live in editor preview
- Error Handling: Graceful fallbacks with helpful troubleshooting messages
- Security First: Comprehensive validation and permission checks
- Modern APIs: Updated to use latest Elementor standards (deprecated classes fixed)
- Financial Dashboards: Stock prices, trading volumes, portfolio tracking
- E-Commerce Analytics: Inventory levels, sales metrics, order statuses
- IoT Monitoring: Sensor data, equipment status, environmental readings
- SaaS Dashboards: User analytics, system metrics, performance KPIs
- v3.1.1: 🎨 MAJOR: Elementor Live Preview - WYSIWYG table editing with real data in editor
- v3.1.0: Virtual Scrolling Performance Engine - 10,000+ rows with sub-2-second load times
- v3.0.0: Full WCAG 2.1 AA Accessibility Compliance - Enterprise-ready accessibility features
- v2.8.0: Intelligent Large Dataset Handling - Enhanced pagination and memory management
- v2.7.0: Smart Auto-Refresh System with intelligent pausing and visual controls
Native WordPress block with visual sidebar controls, quick demo data options, and live preview. No external APIs needed to test functionality.

Product inventory demo showing JSON data transformed into responsive tables with live search functionality. Includes shortcode generator for easy copying.
Real-time search filtering and smart auto-detected column filters working on live data. Shows mobile-responsive design and advanced filtering capabilities.
The most powerful WordPress data table plugin for displaying dynamic content from external APIs, Google Sheets, JSON files, and CSV data sources. Perfect for developers, agencies, and businesses who need to showcase real-time data without database bloat.
Unlike other WordPress table plugins that store data in your database, TableCrafter fetches data directly from your sources, keeping your WordPress installation clean and fast.
Every table is rendered server-side with proper HTML structure, making all your data crawlable by Google, Bing, and other search engines for better rankings.
Advanced caching with Stale-While-Revalidate (SWR) delivers sub-100ms load times while keeping data fresh.
Tables automatically transform into responsive card layouts on mobile devices, ensuring perfect user experience across all screen sizes.
Unlock the full potential of your data with Advanced Data Tables for Gravity Forms — the ultimate solution for managing Gravity Forms entries.
- ✏️ Frontend Editing: Let users update their own entries directly from the table.
- 🛡️ Role-Based Permissions: Control exactly who can view, edit, or delete data.
- ⚡ Bulk Actions: Delete, approve, or modify hundreds of entries in one click.
- 🔍 Advanced Filtering: Logic-based filters, date ranges, and multi-select dropdowns.
- 🎨 Conditional Formatting: Highlight rows or cells based on their values (e.g., "Status = Overdue").
- 📥 Pro Export: Export filtered views to Excel, CSV, or PDF.
- ♾️ Unlimited Freedom: No limits on tables, columns, or rows.
Start your 10-day free trial today! You can cancel anytime before the trial ends to avoid being charged, and we'll send you an email reminder 2 days before it expires.
Yes! We have a dedicated premium solution called Advanced Data Tables for Gravity Forms (formerly Gravity Tables).
Advanced Data Tables is a powerful WordPress plugin that creates beautiful, interactive tables from Gravity Forms entries with advanced frontend editing, bulk operations, filtering, and comprehensive customization options.
- ✅ Spreadsheet-Like Editing: Click anywhere in a cell to edit, just like Excel
- ✅ Advanced Filtering: Field-specific filters with multi-select and date ranges
- ✅ Mobile-Responsive: Complete card layout system for mobile devices
- ✅ Mixed Date Format Support: Handles MM/DD/YYYY, M/D/YYYY, and YYYY-MM-DD automatically
- ✅ Role-Based Access: Granular control over who can view and edit data
- ✅ Lookup Fields: Full support for user, post, and custom table relationships
- ✅ Bulk Operations: Delete, export, edit multiple entries at once
- ✅ Service-Oriented Architecture: Modern PHP with dependency injection
- ✅ Vanilla JavaScript: 59% faster performance, 73% smaller bundle size
- Shortcode Copy Button Fixed: Improved clipboard detection.
- Modal Improvements: Dynamic sizing and optimal layouts for entry forms.
- Native Thickbox Integration: Unified distinct popup experience.
- ✨ Smart Data Formatting: Automatically turns ugly raw data into beautiful content. ISO dates become readable (e.g., "Jan 1, 2024"), URLs become clickable links, and status fields get visual badges.
- 🎯 Data Integration: Connect to Google Sheets, REST APIs, JSON endpoints, or CSV files with zero coding
- 🔄 Smart Auto-Refresh: Live data updates with configurable intervals, smart interaction pausing, and visual indicators
- ⚡ Live Search & Filtering: Real-time data filtering as users type, with debounced performance
- 📱 Responsive Design: Mobile-optimized card view with automatic reflow for small screens
- 🔧 Gutenberg Block: Native WordPress block editor integration with visual controls for data sources and display settings. Features live preview directly in the editor.
- 🛠️ Shortcode Builder: Built-in generator in the admin dashboard. Configure your table visually, preview real-time results, and copy the ready-to-use shortcode with one click.
- 📄 Smart Pagination: Client-side pagination for large datasets with customizable page sizes
- 🎨 Custom Styling: CSS-friendly with variables and hooks for complete design control
- 🔒 Security First: Built-in SSRF protection and WordPress capability-based authorization
- 📊 Data Export: CSV and clipboard export with respect for current filters
- 🗂️ Column Management: Show/hide specific columns with include/exclude parameters
- 🔗 Auto-Linking: Automatically converts URLs and email addresses to clickable links
- Trading Platforms: Live cryptocurrency prices, stock data, portfolio tracking (CoinGecko, Binance, Alpha Vantage APIs)
- Banking Solutions: Transaction histories, account summaries, exchange rates, currency converters
- Investment Analytics: Market performance data, financial calculators, risk assessment tools
- Inventory Management: Real-time stock levels, product catalogs from external suppliers
- Marketplace Integration: Price comparison tables, dropshipping feeds, affiliate marketing data
- Customer Experience: Order histories, shipping tracking, return statuses, customer portals
- Laboratory Data: Experiment results, research findings, clinical trial statistics
- Environmental Monitoring: Weather data, air quality sensors, IoT device readings
- Academic Research: Publication databases, citation tracking, peer review systems
- Client Portals: Usage metrics, billing information, analytics dashboards, support tickets
- HR Management: Employee directories, organizational charts, performance tracking
- Project Management: Task tracking, team metrics, resource allocation, timeline visualization
- MLS Integration: Property listings, market data, pricing trends, comparative market analysis
- Property Management: Tenant information, lease tracking, maintenance requests
- Investment Analysis: Portfolio performance, ROI calculators, market research
- Sports & Entertainment: Live scores, player statistics, league standings, event schedules
- Social Media Analytics: Engagement metrics, influencer data, campaign performance
- Publishing Platforms: Article databases, content management, editorial calendars
- Academic Management: Student records, grade books, attendance tracking, course catalogs
- Professional Development: Certification tracking, training programs, skill assessments
- Research Institutions: Academic databases, curriculum planning, resource management
- Client Management: Project portfolios, case studies, testimonial databases
- Freelancer Networks: Service provider directories, vendor listings, skill marketplaces
- Marketing Analytics: Campaign data, lead tracking, conversion metrics, partnership networks
-
Install from WordPress Admin:
- Go to Plugins > Add New in your WordPress admin
- Search for "TableCrafter" and click Install Now
- Click Activate Plugin after installation
- Follow the automatic redirect to the welcome screen with interactive demos
-
Manual Installation:
- Download the plugin ZIP from WordPress.org or GitHub
- Go to Plugins > Add New > Upload Plugin
- Select the ZIP file and click Install Now
- Click Activate Plugin and visit TableCrafter in admin sidebar
- Try Interactive Demos: Use the welcome screen to explore features with live data
- Connect Your Data: Paste any public JSON URL, Google Sheet link, or CSV file URL
- Choose Your Method:
- Block Editor Users: Add "TableCrafter" block to pages/posts
- Shortcode Users: Use visual shortcode builder in admin dashboard
Create real-time dashboards that update automatically:
[tablecrafter
source="https://api.example.com/live-data.json"
auto_refresh="true"
refresh_interval="30000"
refresh_countdown="true"]
Display live financial data with user-friendly controls:
[tablecrafter
source="https://api.example.com/stocks.json"
auto_refresh="true"
refresh_interval="60000"
refresh_indicator="true"
refresh_last_updated="true"
search="true"
export="true"]
[tablecrafter source="https://api.example.com/data.json" search="true" filters="true"]
[tablecrafter source="https://docs.google.com/spreadsheets/d/YOUR_SHEET_ID/edit"]
echo tablecrafter_render([
'source' => 'https://api.example.com/data.json',
'search' => true,
'per_page' => 25
]);- WordPress: 5.0+
- PHP: 8.0+ (PHP 7 no longer supported)
- MySQL: 5.7+ or MariaDB 10.3+
- Memory: 64MB+ (128MB+ recommended for large datasets)
- Chrome 70+
- Firefox 65+
- Safari 12+
- Edge 79+
- iOS Safari 12+
- Android Chrome 70+
[tablecrafter source="URL" additional_parameters...]
| Parameter | Type | Default | Description |
|---|---|---|---|
source |
string | required | JSON API, CSV file, or Google Sheet URL |
root |
string | "" |
JSONPath to data array (e.g., data.results) |
search |
boolean | false |
Enable live search functionality |
export |
boolean | false |
Enable CSV/clipboard export tools |
per_page |
integer | 0 |
Rows per page (0 = show all) |
include |
string | "" |
Comma-separated columns to show |
exclude |
string | "" |
Comma-separated columns to hide |
id |
string | auto-generated | Unique container ID |
[tablecrafter source="..." include="id:Product ID,name:Product Name,price:Cost"]
[tablecrafter source="..." root="response.data.products"]
[tablecrafter
source="https://api.store.com/products.json"
root="data.items"
include="name:Product,price:Price,category:Category"
search="true"
export="true"
per_page="25"
]
Display data from a public Google Sheet (must be "Anyone with the link"):
[tablecrafter source="https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit"]
// Modify data before rendering
add_filter('tablecrafter_data', function($data, $source) {
// Transform $data array
return $data;
}, 10, 2);
// Customize cache duration (default: 3600 seconds)
add_filter('tablecrafter_cache_ttl', function($ttl, $source) {
return 7200; // 2 hours
}, 10, 2);
// Modify HTTP request arguments
add_filter('tablecrafter_http_args', function($args, $source) {
$args['headers']['Authorization'] = 'Bearer ' . get_option('api_token');
return $args;
}, 10, 2);
// Customize column auto-detection
add_filter('tablecrafter_auto_columns', function($columns, $data) {
// Modify or reorder $columns array
return $columns;
}, 10, 2);// Before data fetch
add_action('tablecrafter_before_fetch', function($source) {
// Log API calls, update counters, etc.
});
// After successful data fetch
add_action('tablecrafter_after_fetch', function($data, $source) {
// Process data, send notifications, etc.
}, 10, 2);
// On fetch error
add_action('tablecrafter_fetch_error', function($error, $source) {
error_log("TableCrafter fetch failed: {$error->getMessage()}");
}, 10, 2);// Table rendered
document.addEventListener('tablecrafter:rendered', function(e) {
const container = e.detail.container;
const data = e.detail.data;
// Custom post-render logic
});
// Search performed
document.addEventListener('tablecrafter:searched', function(e) {
const searchTerm = e.detail.searchTerm;
const results = e.detail.results;
// Analytics, etc.
});
// Data exported
document.addEventListener('tablecrafter:exported', function(e) {
const format = e.detail.format; // 'csv' or 'clipboard'
// Track export events
});// Modify default configuration
window.TableCrafterDefaults = {
pagination: true,
pageSize: 50,
globalSearchPlaceholder: 'Find records...',
exportFilename: 'my-export.csv'
};TableCrafter implements a Stale-While-Revalidate (SWR) caching pattern:
- Serve Stale: Return cached data immediately
- Validate in Background: Fetch fresh data asynchronously
- Update Cache: Store new data for next request
- Fallback: Serve stale data if fetch fails
// Cache key structure
$cache_key = 'tc_html_' . md5($source . $include . $exclude . $search . $export . $per_page);
// Cache storage
wp_cache_set($cache_key, $data, 'tablecrafter', $ttl);Tables are rendered on the server for:
- SEO Benefits: All data is crawlable by search engines
- Fast TTFB: No loading spinners or content shifts
- Accessibility: Screen readers can access content immediately
- Zero-JS Fallback: Tables work even with JavaScript disabled
// URL validation
if (!wp_http_validate_url($url)) {
throw new Exception('Invalid URL');
}
// Safe HTTP requests
$response = wp_safe_remote_get($url, [
'timeout' => 30,
'user-agent' => 'TableCrafter/' . TABLECRAFTER_VERSION,
'headers' => ['Accept' => 'application/json']
]);// Admin-only features
if (!current_user_can('edit_posts')) {
wp_die('Unauthorized');
}
// Proxy endpoint protection
if (!wp_verify_nonce($_POST['nonce'], 'tablecrafter_proxy')) {
wp_die('Security check failed');
}┌─────────────────┐ ┌──────────────┐ ┌─────────────────┐
│ JSON Source │───▶│ HTTP Fetch │───▶│ Data Parsing │
└─────────────────┘ └──────────────┘ └─────────────────┘
│
▼
┌─────────────────┐ ┌──────────────┐ ┌─────────────────┐
│ Cache Storage │◀───│ SSR Render │◀───│ Column Detection│
└─────────────────┘ └──────────────┘ └─────────────────┘
│
▼
┌─────────────────┐ ┌──────────────┐ ┌─────────────────┐
│ Client Hydration│◀───│ HTML Output │◀───│ Data Formatting │
└─────────────────┘ └──────────────┘ └─────────────────┘
TableCrafter uses zero database tables by design. All data is:
- Fetched from external sources
- Cached in WordPress transients
- Rendered server-side to HTML
- Enhanced client-side with JavaScript
// HTML cache
"tc_html_{md5(source+params)}" => "rendered HTML"
// Data cache
"tc_data_{md5(source)}" => "parsed JSON data"
// Column cache
"tc_cols_{md5(source)}" => "auto-detected columns"# Run PHP tests
php tests/run-tests.php
# Test specific functionality
php tests/run-tests.php --filter=TestSSRFProtection# E2E tests require local WordPress environment
npm run test:e2e
# Note: E2E tests are disabled in CI pending WordPress environment setup
# See .github/workflows/ci.yml for details| Browser | Version | Status |
|---|---|---|
| Chrome | 120+ | ✅ Full Support |
| Firefox | 115+ | ✅ Full Support |
| Safari | 16+ | ✅ Full Support |
| Edge | 120+ | ✅ Full Support |
| iOS Safari | 15+ | ✅ Mobile Optimized |
| Android Chrome | 120+ | ✅ Mobile Optimized |
- Cold Load: < 200ms (with external API)
- Warm Cache: < 50ms (SWR cache hit)
- Client Hydration: < 100ms (embedded data)
- Search Response: < 10ms (client-side filtering)
// Enable debug logging
add_filter('tablecrafter_debug', '__return_true');
// Log file location
wp-content/debug.logProblem: Access-Control-Allow-Origin errors in browser console
Solution: Use TableCrafter's built-in proxy automatically handles CORS
Problem: Large datasets causing memory exhaustion
Solution: Use per_page parameter to enable pagination
Problem: Stale data not refreshing
Solution: Clear cache programmatically
// Clear specific cache
delete_transient('tc_data_' . md5($source));
// Clear all TableCrafter cache
global $wpdb;
$wpdb->query("DELETE FROM {$wpdb->options} WHERE option_name LIKE '_transient_tc_%'");# Clear all TableCrafter cache
wp eval "delete_transient('tc_data_*');"
# Test API endpoint
wp eval "var_dump(wp_safe_remote_get('https://api.example.com/data.json'));"
# Check plugin status
wp plugin status tablecrafter-wp-data-tables# Clone repository
git clone https://github.com/TableCrafter/wp-data-tables.git
# Install development dependencies
composer install
npm install
# Run tests
npm test
php tests/run-tests.php
# Start local development
npm run dev- PHP: WordPress Coding Standards (WPCS)
- JavaScript: ESLint + WordPress eslint config
- CSS: Stylelint + WordPress CSS guidelines
- Documentation: PHPDoc for all functions
- Update version in
tablecrafter.php,readme.txt,CHANGELOG.md,sync_svn.sh - Run full test suite
- Create Git tag:
git tag v2.2.x - Push to GitHub:
git push origin main --tags - Deploy to WordPress.org:
./sync_svn.sh && cd ../tablecrafter-svn && svn ci
License: GPLv2 or later
Copyright: © 2024 TableCrafter Team
Compatibility: WordPress 5.0+ | PHP 8.0+
- Icons: Heroicons (MIT License)
- Inspiration: WordPress Core Table Block
- Typography: System font stack
- Documentation: GitHub Wiki
- Bug Reports: GitHub Issues
- Feature Requests: GitHub Discussions
- Custom Development: info@fahdmurtaza.com
- Premium Support: Gravity Tables Pro
Love TableCrafter? ⭐ Star us on GitHub | ☕ Support Development