Documentation

vTables documentation

Install vTables, build your first table and get the most out of Premium and Ultimate. Every guide in one place.

Getting started

Requirements

  • WordPress 6.0 or later and PHP 7.4 or later.
  • vTables Pro needs the free vTables plugin installed and active. On WordPress 6.5+ this is checked automatically.
  • Optional: WooCommerce for product tables, a Google Sheets API key for reliable Google Sheets sync, and a working WP-Cron for auto-sync.

Tables work in all modern browsers and with any theme.

Installation

Free plugin

  1. In the WordPress admin, go to Plugins → Add New.
  2. Search for vTables, click Install Now, then Activate.

You can also download the plugin from WordPress.org and upload it under Plugins → Add New → Upload Plugin.

vTables Pro

  1. Download the vTables Pro .zip file from the link in your order confirmation.
  2. Go to Plugins → Add New → Upload Plugin, choose the file and click Install Now.
  3. Click Activate. Keep the free vTables plugin active as well.

vTables Pro is an add-on that works on the same tables as the free plugin. You can add it at any time without re-creating anything, and if you remove it later, your file-based tables keep working in the free plugin.

Activate your license

  1. In the WordPress admin, open vTables → License.
  2. Paste your license key and click Activate.
  3. The page shows your plan, the expiry date and the license status.

A license can be active on 1 site, 5 sites or unlimited sites at the same time, depending on the one you bought. To move it to another site, click Deactivate first, then activate the key on the new site.

When a license expires

  • Existing tables keep the features they were created with.
  • New tables are created with the free features.
  • Plugin updates are paused until you renew. A notice appears in the admin 7 days before expiry.

Trial licenses

A trial lets you build one table with paid features. When the trial ends, that table stops syncing until you upgrade.

Creating tables

Create a table from scratch

  1. Go to vTables → Tables and click Add table.
  2. Open the Create tab, enter a title and choose the number of columns and rows (up to 100 columns × 1,000 rows).
  3. Optionally set up indexed columns, then click Create.

The new table opens in the editor, ready for you to fill in the cells.

Import a file

  1. Click Add table and open the Upload tab.
  2. Drag and drop a CSV, JSON, XLS or XLSX file, or pick one from your computer. Files can be up to 10 MB.
  3. Click Import. The first row of the file becomes the table header.

Large files are uploaded in chunks and imported in the background. A progress row shows how far the import has got, and you can abort it at any time.

If the table structure looks different from your file, check that each column holds one type of data. In Google Sheets, select all columns, choose Format → Number → Plain text and import again.

Import from Google Sheets Ultimate

  1. In Google Sheets, click Share and set General access to Anyone with the link (Viewer).
  2. Click Copy link.
  3. In vTables, click Add table, open the Google Sheets tab, paste the link, enter a title and click Import.
Google Sheets share dialog with General access set to Anyone with the link
Set General access to “Anyone with the link”.

Without an API key, vTables reads the sheet through Google’s public endpoint, which is not always reliable and may return incomplete data. Add a Google Sheets API key under vTables → Settings for dependable imports and syncing.

Import from a URL Ultimate

Click Add table, open the External tab and paste a direct link to a CSV or JSON file. The link must return the file itself, not a web page. vTables warns you if it doesn’t look like a data file.

URL tables can be refreshed with manual sync or auto-sync.

WooCommerce product tables Ultimate

  1. Make sure WooCommerce is installed and active.
  2. Click Add table, open the Woo Products tab and choose all products or only selected categories.
  3. Click Import.

By default the table shows name, image, description, SKU, rating, stock, price, quantity and an add-to-cart button. Categories, weight, dimensions and product attributes are available too. Turn them on in the Columns settings.

  • Visitors choose a quantity and add products to the cart right from the table. A notification with your own message links to the cart.
  • Stock badges, their labels and links to product pages can be adjusted in the Woo settings tab.
  • The table updates in real time as products change, and a daily task runs a full check.

For the smoothest experience, enable “Enable AJAX add to cart buttons on archives” in WooCommerce → Settings → Products.

Sync and auto-sync Ultimate

Tables created from Google Sheets, a URL or WooCommerce can be refreshed from their source.

  • Manual sync pulls fresh data immediately. The table’s current data is replaced with the data from the source.
  • Auto-sync refreshes the table on a schedule. Open the table settings, go to the Sync tab and choose an interval: every 5 minutes, 30 minutes, hourly, twice a day or daily.
  • WooCommerce tables update in real time, plus a daily full check.

Auto-sync runs on WP-Cron. On low-traffic sites, or if WP-Cron is disabled, set up a real server cron job so syncing happens on time.

Editing

Edit table content

  • Open a table and double-click any cell or header to edit it.
  • Right-click to add rows or columns before or after, rename a column, or delete rows and columns.
  • Click Save to keep your changes or Cancel to discard them. vTables warns you before you leave with unsaved changes.

For tables synced from Google Sheets, a URL or WooCommerce, edit the source instead. The next sync replaces the table data.

Indexed columns

Indexed columns make sorting, filtering and searching large tables faster. You can index up to 5 columns and give each one a type: Text, Number, Date or Boolean.

Choose them with Configure indexed columns when you create or import a table, or skip this step with Create without indexes.

Rename or delete tables

To rename a table, open it, use the rename action next to its title, enter the new title and click Save.

Delete tables

On the Tables screen, select one or more tables with the checkboxes and click Remove selected, or use the delete icon in a table’s row. Remember to remove its shortcode from your pages too.

Displaying tables

Shortcodes

Every table has a shortcode. Copy it from the Shortcode column on the Tables screen and paste it into a Shortcode block, the Classic editor, a page builder such as Elementor, WPBakery or Divi, or any widget that supports shortcodes.

Show a table
[vtables id="1"]

Show a single value

Add row and column to print one cell inside your text. Rows start at 1, column names are case-insensitive and spaces become underscores.

Show one cell
[vtables id="1" row="2" column="email"]

How tables are embedded

Tables load lazily from their own URL (/vtables-embed/{id}/), so they don’t slow down your page and are excluded from page caching and script optimization. Because the table loads separately, search engines don’t index its content. If some information matters for SEO, mention it in the page text as well.

If a page still shows old table content after an update, clear your page cache once.

Smart cells

vTables checks each cell value and picks the right format automatically. You don’t set column types. Just write the value in the format below.

FormatCell valuePlan
Imagehttps://example.com/photo.jpgFree
Linkhttps://example.comFree
Button<button href="https://example.com">Buy now</button>Free
Basic HTML<a>, <img>, <br>, <button>Free
VideoYouTube or Vimeo link, or an .mp4 / .webm filePremium
PDFhttps://example.com/report.pdfPremium
Audio.mp3, .wav, .ogg, .m4a and morePremium
Google Mapshttps://www.google.com/maps/embed?pb=…Premium
Star rating<rating value="4.5" total="5"/>Premium
Progress bar<progress value="75"/>Premium
JSON{"name": "Alice", "score": 95}Premium

Tips

  • Put several images or links in one cell by separating the URLs with spaces.
  • Image URLs must end with the file extension. photo.jpg?v=1 is shown as a link, not an image.
  • For maps, use the embed URL from Google Maps’ Share → Embed a map, not a regular share link.
  • To mix text, links and images in one cell, use the allowed HTML tags.

Customizing

Table settings

Each table has its own settings. Open the table and click the settings button. Tabs you have changed are marked, so you can see at a glance what’s customized.

TabWhat you can changePlan
DimensionsTable height and maximum widthFree
HeaderShow or hide the header and title, sticky headerFree
StyleColors for the title bar, header, body, buttons, links and pagination; dense, flat and separator optionsFree
ColumnsShow or hide columns, minimum and maximum width, sticky first or last columnPremium
Col. groupsGrouped, nested column headersPremium
SearchA search box for visitorsPremium
SortingClick-to-sort headers, binary sorting and default directionPremium
FilterRules that pre-filter rows: contains, equals, starts with, greater than, is empty and more, combined with AND/ORPremium
PaginationRows per page (5, 10, 15 or 20)Premium
ViewTable or card layout per device and cards per rowPremium
RowsThumbnail size, image popup, vertical alignment, JSON preview linesPremium
Custom CSSCSS scoped to this tablePremium
SyncAuto-sync intervalUltimate
WooAdd-to-cart labels, notification, stock badges and product linksUltimate
ResetRestore the default settingsFree

Responsive layouts Premium

On every plan, wide tables scroll horizontally on small screens. With Premium you can choose a layout for each device in the View tab:

  • Desktop: 1440 px and wider
  • Tablet: 600–1439 px
  • Mobile: under 600 px

Pick table or grid (cards) for each one and set how many cards sit side by side. Combine this with a sticky header and a sticky first column to keep long tables easy to read.

Custom CSS Premium

Open the table settings and go to the Custom CSS tab. The CSS you write is automatically scoped to that table, so it never affects the rest of your site. Write plain selectors:

Custom CSS
.q-table th {
  background: #eef0ff;
  font-weight: 700;
}

Export

Download any table as CSV, JSON or XLSX on every plan. Open the table settings and choose Export. Use it for backups or to move data between sites.

Advanced

Google Sheets API key

Under vTables → Settings you can save a Google Sheets API key. With a key, imports, manual syncs and auto-sync use the official Google Sheets API instead of the public endpoint.

  1. In the Google Cloud Console, create a project or pick an existing one.
  2. Enable the Google Sheets API for the project.
  3. Create an API key under APIs & Services → Credentials. Restricting it to the Google Sheets API is recommended.
  4. Paste the key in vTables → Settings and save. The status shows whether it’s connected.

WP-CLI

vTables adds WP-CLI commands for maintenance tasks:

Terminal
wp vtables migrate-rows [--table-id=<id>]
wp vtables sync
wp vtables reindex
  • migrate-rows moves tables created by older versions to the new row storage. Use it for tables the background migration skipped.
  • sync runs the scheduled sync for synced tables.
  • reindex rebuilds the WooCommerce product index.

Upgrading to vTables 3.0

Your tables, their data and their shortcodes keep working, and the update runs automatically:

  • Table rows move to a dedicated database table in the background, a few tables at a time. The Logs screen shows the progress.
  • Search, sorting, sticky columns, custom CSS and rows per page are now part of vTables Pro. Your saved values are kept and apply again when Pro is active.
  • Columns you had hidden stay hidden.
  • For developers: the vtables/v1 REST routes were removed.

Uninstalling

Deleting the free plugin removes its settings but keeps your tables, so reinstalling brings them back. To delete the tables as well, add this line to wp-config.php before deleting the plugin:

wp-config.php
define( 'VTABLES_REMOVE_ALL_DATA', true );

This setting is ignored while vTables Pro is installed, because Pro uses the same tables. Deleting vTables Pro only removes its WooCommerce index and its own options.

Still stuck?

Check the FAQ, ask on the support forum or contact us. We’re happy to help.