
WordPress Plugin

WordPress Plugin
GNU GPL
Unlimited websites
$5.99
Save —
One-time purchase
Secure checkout · Instant access
★★★★★
4.8
I tested WPC Product Table on a real WooCommerce setup, not in some clean demo sandbox where everything magically behaves. My store had variable products, a bloated theme, WP Rocket, Rank Math, and one of those “premium” builders that injects six wrappers just to print a button. Lovely stuff.
The good news: WPC Product Table actually works. The table renders products cleanly, the add-to-cart flow is usable, and I didn’t have to sacrifice a weekend to make it display SKUs, prices, stock status, and variations in one place.
The bad news: like most WooCommerce table plugins, it can get cranky when your theme already thinks it owns every WooCommerce hook on the planet.
Most of the useful stuff sits in:
WP Admin -> WPClever -> Product Table
That’s where I changed columns, button behavior, pagination, sorting, and responsive options. No mystery “theme options” maze, thankfully.
For inserting the table, I used the shortcode block in Gutenberg and also dropped the shortcode directly into a custom template. On one landing page I used:
Appearance -> Theme File Editor -> page-product-list.php
Yeah, I know, editing there is ugly. In the actual project I moved it into a child theme because I’m not completely feral.
WPC Product Table pulled products from normal WooCommerce data, so nothing weird was stored in some custom nightmare table. Product data still lives where it should:
wp_posts, wp_postmeta, wp_terms, wp_term_relationships
That matters if you ever need to debug missing SKUs or broken stock filters with SQL instead of praying at the admin screen.
My theme was already overriding WooCommerce button markup through:
wp-content/themes/my-theme/woocommerce/loop/add-to-cart.php
So the table button looked fine on desktop and then exploded on mobile like a cheap accordion menu. I opened DevTools, checked the Elements panel, and saw the theme dumping its own .button.product_type_variable classes into the table.
Classic WordPress nonsense.
My fix was not beautiful, but it worked. In the child theme functions.php, I added a small conditional style override only on the page using WPC Product Table:
add_action('wp_enqueue_scripts', function () {
if (is_page('bulk-order')) {
wp_add_inline_style('wpcpt-frontend', '
.wpcpt-table .button { white-space: nowrap; min-width: 110px; }
.wpcpt-table td { vertical-align: middle; }
');
}
});
If your handle is different, check it in DevTools under Network -> CSS. Don’t guess. Guessing is how people end up with twelve useless snippets.
With WP Rocket, the cart buttons initially failed after I enabled “Delay JavaScript execution”. Console showed:
jQuery is not defined
and sometimes Woo fragments didn’t refresh after adding a product.
I had to exclude these from delay:
jquery-core
jquery-migrate
wc-add-to-cart
wc-cart-fragments
wpcpt-frontend
After that, WPC Product Table stopped acting drunk. If you minify everything blindly, WooCommerce variations are usually the first thing to catch fire. I absolutely hate that this is still a thing in 2026, but here we are.
Stuff I could handle in the plugin/admin UI:
Stuff that needed code or template digging:
For role-based column hiding, I used the shortcode in a PHP template and wrapped it:
if (current_user_can('wholesale_customer')) {
echo do_shortcode('[wpc_product_table columns="sku,name,price,stock,cart"]');
} else {
echo do_shortcode('[wpc_product_table columns="name,price,cart"]');
}
Not elegant. Effective. That’s basically WordPress development in one sentence.
I opened DevTools -> Network and watched the page load with 96 products in the table. The plugin itself wasn’t the biggest pig. The theme was loading three icon fonts, Elementor frontend assets, and five font weights from Google Fonts. What were they thinking?
Still, don’t render 300 products at once and then blame WPC Product Table. Use pagination. Keep it sane. The DOM gets fat fast when every product row includes image, price HTML, stock badge, quantity field, and cart button.
For my bulk order page, 25–40 products per page felt like the sweet spot.
I tested a GPL copy of WPC Product Table and it was fully working for me with no domain cap — basically Unlimited Website Usage. No feature wall popped up during normal use.
Activation wasn’t dramatic. The plugin ran without me typing a license key for the actual table features. A key may matter for official automatic updates and vendor support, but the plugin itself didn’t stop rendering tables.
Manual updates were boring: download the new ZIP, back up the site, deactivate the old plugin, replace:
wp-content/plugins/wpc-product-table/
then reactivate. I also checked the table page after update because WooCommerce plugins love tiny frontend regressions.
Usually delayed JS. Exclude jquery-core, wc-add-to-cart, wc-cart-fragments, and the WPC frontend script from WP Rocket or LiteSpeed delay.
Your theme CSS is probably leaking into table buttons or cells. Inspect .wpcpt-table in DevTools and override inside the child theme, not global Customizer soup.
Not nicely from the UI in every setup. I usually hook it in PHP or print a custom shortcode column. Check product meta in wp_postmeta first.
Not by itself, but huge product lists create a nasty DOM. Use pagination and avoid loading 100+ product rows with images and variation controls.
All products we provide come only from official sources and verified developers. To confirm their integrity and safety, the archive has been scanned for viruses and malware. You can review the scan results at any time by clicking the button below.
View in VirusTotalYou can use any product from our store on as many websites as you like.
Single purchase includes download access for 72 hours. Future version downloads require repurchase or an active membership.
Manual updates are available to customers with active access.
Yes, we do. In most cases, you can expect a reply within 24–72 business hours. For simpler issues, we’re often able to respond much sooner.
You can contact us via live chat or open a support ticket directly from the product page — whichever is more convenient for you.
No, there are no limits. We don’t believe in restricting downloads. If you need to download a product multiple times, that’s absolutely fine.
We use professional, high‑performance storage systems to ensure downloads are fast, stable, and hassle‑free.
No, license keys are not included or required. Because all items are distributed under the GNU General Public License (GPL), a license key is not necessary to access the software’s functionality.
All products you receive are fully authentic. The files are provided fully functional and optimized for immediate installation, allowing you to use them seamlessly right out of the box without any restrictions.
Yes — 100%. All products contain the original code and are legally redistributed under the GNU GPL v2/v3 license.
The main difference compared to purchasing directly from the original author is that we don’t offer premium author services, such as custom development or one‑on‑one technical support. Additionally, since the software is fully GPL-compliant, it is provided ready for use and can be freely installed on an unlimited number of websites.
Yes, we stand behind our products. If you encounter an issue that cannot be resolved or a technical problem without a workable solution, we’ll do our best to help — and if necessary, issue a full refund.
Please note that refunds are not available if the product works as described but simply does not meet personal expectations. We’ve also encountered cases where refund requests were made while the product was still in use, which we cannot allow.
Our approach is simple: fairness and transparency. If you ever have a concern, just reach out — we’re always open to finding a reasonable solution that works for both sides.

Reviews
There are no reviews yet.