What is Storzen Product Compare?
Storzen Product Compare for WooCommerce adds a proper "Compare" experience to your store: shoppers add products to a compare list from the shop loop, a single product page, or a WooCommerce Blocks grid, then view them side by side on a dedicated compare page — image, title, price, rating, SKU, availability, short description, and an Add to Cart action, row by row.
It is entirely self-hosted: the compare list is stored in the standard WooCommerce session (no custom database tables, no cookies of its own, no phone-home telemetry), so it plays nicely with page caching and object caching out of the box.
[storprco_compare_table] shortcode.| Feature | Trail Runner Jacket | Alpine Shell Jacket | Summit Windbreaker |
|---|---|---|---|
| Price | $89.00 | $129.00 | $64.00 |
| Rating | ★★★★☆ (24) | ★★★★★ (51) | ★★★☆☆ (9) |
| SKU | TRJ-100 | ASJ-220 | SWB-045 |
| Availability | In stock | In stock | Out of stock |
| Add to Cart | Add to Cart | Add to Cart | Read More |
System Requirements
WooCommerce is a hard requirement — the plugin checks for it on activation and deactivates itself with an admin notice if it isn't active. Elementor is entirely optional.
| Component | Minimum | Notes |
|---|---|---|
| WordPress | 6.5 | Tested up to 7.0 |
| PHP | 8.1 | Required for the plugin's typed codebase |
| WooCommerce | 7.0 | Required — the plugin deactivates itself without it. Tested up to 9.0 |
| Elementor | Optional | Compare Table widget only registers if Elementor is active |
render_blockInstallation
Method A — WordPress Plugin Directory (Recommended)
Search in WordPress Admin
Go to Plugins → Add New and search for Storzen Product Compare for WooCommerce.
Install & Activate
Click Install Now, then Activate. WooCommerce must already be installed and active.
Compare Page Is Created Automatically
A page titled Compare Products is created on activation with the [storprco_compare_table] shortcode already in place — nothing else to set up.
Method B — Manual Upload
Download & Upload
Download storzen-product-compare-for-woocommerce.zip from wordpress.org/plugins. Go to Plugins → Add New → Upload Plugin and install the ZIP.
Activate
Click Activate Plugin. The Compare Products menu appears in your WordPress admin sidebar.
Configure Settings
Go to Compare Products in the admin menu to set the compare page, max products, button placement, and visible fields.
Quick Start
After activation you'll find Compare Products in your WordPress admin menu.
- The Compare Products page is already live at
/compare-products/with the shortcode in place - The Compare button appears automatically on your shop loop and single product pages — no setup required
- Go to Compare Products → General to change the compare page or the maximum number of products (2–5)
- Go to Compare Products → Display to move the button position or change its label
- Go to Compare Products → Advanced to choose which fields appear in the table, or place the compare table anywhere with the
[storprco_compare_table]shortcode or the Elementor widget
Compare Button
The Compare button is rendered wherever a product can be shown — the shop loop, the single product page, and modern WooCommerce Blocks grids — and reflects the current state of the compare list.
Placement
Choose After Add to Cart (hooked to woocommerce_after_shop_loop_item) or Before Add to Cart (hooked to woocommerce_before_shop_loop_item_title) under Display settings. The single product page placement (woocommerce_single_product_summary, priority 35) can be toggled on or off independently.
Label & state
The button label is fully customizable. Once a product is added, the button switches to a "✓ Added to Compare" state so shoppers always know what's already queued up — this state is restored on page load without an extra AJAX call, by reading the compare list that's already localized into the page.
Compare Table & Fields
The compare page renders a responsive table with one column per product and one row per enabled field. Up to 5 products can be compared at once (configurable, 2–5, under General settings).
Available fields
Toggle any of these on or off under Advanced → Visible Fields. The Add to Cart row automatically adapts per product type: Select Options for variable products, View Products for grouped products, Read More for products that aren't purchasable or in stock, and a live AJAX Add to Cart button otherwise.
Removing products
Each product column has a small remove control in its header, and a Clear All button sits above the table to empty the whole list in one click — both reload the page after the AJAX call completes so the table reflects the current list.
storprco_fields filter to register a new field key/label, then return its markup via the storprco_field_value filter — see Hooks & Filters.
AJAX Add/Remove & Toast Notifications
Every compare interaction — add, remove, and clear — runs over WordPress AJAX with a nonce-verified request, so nothing ever triggers a full page reload from the shop loop or single product page.
| AJAX Action | Trigger | Result |
|---|---|---|
| storprco_add_to_compare | Clicking an unadded Compare button | Adds the product, or returns max_reached / already_added |
| storprco_remove_from_compare | Clicking an added Compare button, or a column's remove control | Removes the product from the list |
| storprco_clear_compare | Clicking Clear All on the compare page | Empties the compare list |
Toast notifications
A small toast appears in the corner of the screen for three seconds on every add, remove, or error. When a product is successfully added, the toast includes a View Comparison link straight to the compare page (only shown if a compare page is configured).
Elementor Widget
When Elementor is active, a Compare Table widget appears under the WooCommerce Elements category (search keywords: compare, product, woocommerce, storzen, table). It wraps the same [storprco_compare_table] shortcode with Elementor-native styling controls, and only loads at all if Elementor is detected.
Content controls
- Show Clear All Button — toggle the Clear All control on or off for this widget instance
- Show Remove Column Button — toggle the per-column remove control
Style controls
- Table tab — header background, header text color, even-row background, and border color
- Add to Cart Button tab — button background and text color
WooCommerce Compatibility
Storzen Product Compare declares compatibility with WooCommerce's High-Performance Order Storage (HPOS / custom order tables) and Cart & Checkout Blocks features via FeaturesUtil::declare_compatibility(), so it never triggers a WooCommerce compatibility warning.
Blocks-based product grids
The classic woocommerce_after_shop_loop_item / woocommerce_before_shop_loop_item_title hooks never fire inside the block-based Products block or All Products block. To keep the Compare button working there too, the plugin filters render_block for the woocommerce/product-template and woocommerce/all-products block names and appends the button directly into the rendered block markup, right before the closing wrapper tag.
Frontend assets are also conditionally enqueued on any page containing a woocommerce/product-collection or woocommerce/all-products block, even if no classic shop loop template part is rendered on that page.
Shortcode
[storprco_compare_table]
Paste this shortcode into any page, post, or widget area to place the compare table anywhere on your site — the auto-created Compare Products page already contains it. For an Elementor layout, use the Compare Table widget instead, which wraps the same shortcode with extra styling controls.
All Settings
Every option, grouped by the settings tab it lives under (Compare Products in the admin menu).
General
| Option | Default | Notes |
|---|---|---|
| storprco_page_id | auto-created page | The page containing the [storprco_compare_table] shortcode |
| storprco_max_products | 3 | 2–5, also filterable via storprco_max_products |
Display
| Option | Default | Notes |
|---|---|---|
| storprco_button_position | after_add_to_cart | after_add_to_cart or before_add_to_cart |
| storprco_button_text | Compare | Label shown before a product is added |
| storprco_show_on_single | on | Show the Compare button on single product pages |
Advanced
| Option | Default | Notes |
|---|---|---|
| storprco_fields | all 8 fields | Which rows appear in the compare table |
| storprco_clear_on_order | on | Automatically clear the compare list once a customer completes an order |
Hooks & Filters
For developers and agencies who need to customise behaviour without editing core plugin files.
| Hook | Type | Purpose |
|---|---|---|
| storprco_max_products | filter | Change the maximum number of products a shopper can compare |
| storprco_fields | filter | Add, remove, or relabel rows in the compare table |
| storprco_field_value | filter | Return the markup for a custom field key added via storprco_fields |
| storprco_admin_tabs | filter | Add a custom tab to the Compare Products settings screen |
| storprco_admin_tab_{slug} | action | Fires so a custom settings tab can render its own content |
add_filter( 'storprco_max_products', function() { return 4; } );
add_filter( 'storprco_fields', function( $fields ) { $fields['brand'] = __( 'Brand', 'my-theme' ); return $fields; } ); add_filter( 'storprco_field_value', function( $value, $field, $product ) { if ( 'brand' === $field ) { return get_the_term_list( $product->get_id(), 'product_brand' ); } return $value; }, 10, 3 );
Frequently Asked Questions
Does this work without Elementor?
[storprco_compare_table] shortcode. The Elementor widget is only registered — and only adds extra file weight — if Elementor is detected as active.Where is the Compare page?
[storprco_compare_table] shortcode already placed. You can point the plugin at a different existing page any time from Compare Products → General.How many products can be compared?
storprco_max_products filter.Is it compatible with my theme?
storprco-) layered on top for layout.Does the compare list survive between visits?
Does this work without WooCommerce?
Is the plugin translation ready?
storzen-product-compare-for-woocommerce text domain.