Skip to content

Versus Pro

Versus Pro is a paid add-on for the free Versus product comparison plugin for WooCommerce. It adds a [versus_compare] comparison page, a sticky compare bar on catalogue pages, a choice of table rows, CSV, PDF and print export, and an optional same-category rule. It only runs while Versus is installed and active.

Versus Pro extends the free Versus plugin. It requires Versus installed and active, and shows an admin notice instead of booting when Versus is missing. It is distributed through Freemius, not WordPress.org. Requirements from the plugin header: WordPress 6.4, PHP 8.1, WooCommerce 8.0.

The screen sits under the WooCommerce Products menu and needs the manage_woocommerce capability, so shop managers can use it. Everything is stored in one option, versus_pro_settings. The settings option is not written on activation: defaults are applied when the option is read, so the comparison page works before you ever save the screen.

Setting Key Default What it does
Comparison rows rows all seven on Price, SKU, Stock status, Weight, Dimensions, Short description, Product attributes. Each can be switched off.
Show the sticky compare bar sticky_bar on Bar at the bottom of catalogue pages.
Highlight rows where products differ highlight_differences on Tints rows whose values are not identical across the compared products.
Show CSV, PDF download and print export_enabled on CSV and PDF download links above the [versus_compare] table. Print shows either way.
Restrict compare to the same product category category_scope_enabled off See Category-scoped compare.
Maximum products to compare max_items 4 Any value outside 2 to 6 is clamped into that range.

Add [versus_compare] to any page. It takes no attributes. It renders the shopper’s current comparison set as a side-by-side table with the rows you enabled. The set is the same list the free Compare buttons maintain: a logged-in shopper’s list is tied to the user account, a guest’s list to the free plugin’s versus_compare_session cookie.

How the table builds its rows:

  • Price uses the WooCommerce price HTML, so sale prices and variable price ranges show as they do in the shop.
  • Weight adds your store’s weight unit and shows - when a product has no weight.
  • Dimensions shows N/A when a product has none.
  • Short description is stripped to plain text.
  • Product attributes adds one row per attribute found on any compared product. A product without that attribute shows -.

The table shows at most Maximum products to compare items, oldest added first. The setting caps what is displayed and exported; it does not stop a shopper from adding more through the free buttons. Products that are no longer readable (draft, private or password protected since they were added) are left out of the table and the export. With an empty set the shortcode shows “Nothing to compare yet” and a Browse products link to the shop page.

When enabled, a bar fixed to the bottom of the shop page, product category, tag and attribute archives and single product pages shows thumbnails of the selected products, a count, and a Compare link. It does not render while the set is empty.

The Compare link points to the first published page (lowest ID) that contains [versus_compare], and to the shop page if there is none. The resolved address is cached for 12 hours in the versus_pro_compare_url transient. To set the address yourself, use the versus-pro/compare_page_url filter.

The close button hides the bar and remembers that in the browser’s localStorage together with the number of selected products. The bar comes back when the shopper adds or removes a product.

The comparison page includes Download CSV, Download PDF and Print. CSV and PDF use plain-text values from the enabled rows and the same product cap as the table. Files are named product-comparison-<date-time>.csv or .pdf. Download links carry a nonce, and a request with no valid nonce, or with export switched off, gets a 403 error. Print opens the browser’s print dialog.

When enabled, shoppers can only add products that share at least one WooCommerce product category with the first item in their list. A blocked add returns the error “Compare products from the same category only.” The [versus_compare] table also filters out items that no longer match the first one. Variations are checked through their parent product’s categories, and a product with no categories is never blocked.

  • Boots only after the free Versus plugin has loaded (on its versus/booted action).
  • Registers the comparison shortcode, row settings, sticky bar, export handlers and category scope without replacing free list storage.
  • Declares WooCommerce HPOS and Cart/Checkout Blocks compatibility.
  • Integrates the Freemius SDK for licensing, activation UI and automatic updates.
Hook Type Arguments Use
versus-pro/compare_page_url filter string $url Change the address the sticky bar’s Compare link points to.
versus-pro/booted action Versus Pro plugin instance Fires after Versus Pro has booted.
add_filter( 'versus-pro/compare_page_url', function ( $url ) {
return home_url( '/compare/' );
} );

The free plugin adds Compare buttons, guest/customer lists and difference highlighting on the default comparison view. PRO adds a public comparison page, sticky bar, configurable rows, CSV/PDF/print export and category-scoped compare. The current PRO roadmap is feature-complete.

Does Versus Pro work without the free Versus plugin?

Section titled “Does Versus Pro work without the free Versus plugin?”

No. Without an active Versus it shows the notice “Versus Pro requires the free Versus plugin to be installed and activated.” and loads none of its features.

Why does the sticky bar not show on my comparison page?

Section titled “Why does the sticky bar not show on my comparison page?”

The bar only renders on the shop page, product category, tag and attribute archives and single product pages. A regular page holding [versus_compare] does not get it.

Can a shopper compare more than six products?

Section titled “Can a shopper compare more than six products?”

No table shows more than six. The Maximum products to compare value is clamped to 2 to 6, and the table and exports show only that many items, oldest first.

Section titled “Where does the Compare link in the bar go if I have no comparison page?”

To the WooCommerce shop page. Publish a page with [versus_compare] or set the address with the versus-pro/compare_page_url filter.