Description
Cross-Sell with Discounts for WooCommerce shows the right add-on products at the moment customers are ready to buy — in the mini-cart, on the cart page, and at checkout — with an optional automatic discount and a savings badge.
You decide which products are suggested and which category triggers them. As soon as a customer has a product from a trigger category in the cart, the matching cross-sell products appear as one-click suggestions. The discount applies automatically while a trigger product is in the cart, and disappears when it is removed — no coupon codes needed.
The plugin is theme-neutral: it uses the standard WooCommerce mini-cart hook and works with Storefront, Astra, Kadence and other common themes. For themes without a matching mini-cart hook (or block themes), a shortcode and a block are provided. Optional adapters keep full compatibility with the Flatsome theme and the WooFood plugin.
Key features
- Category-based cross-sell suggestions — configure the trigger category per product.
- Optional automatic discount per product (0–100 %), shown with a struck-through original price and a savings badge.
- One-click “add to cart” without a page reload (AJAX), including in the block checkout (Store API).
- Suggestions in the mini-cart, on the cart page, and at checkout — each location can be toggled on or off individually.
- Three display layouts: a stacked list, a horizontal slider (swipe/drag, with dots or arrow controls), or a responsive grid with a per-location maximum column count and automatic card widths for any theme.
- Grid image format — landscape 4:3, square 1:1, or portrait 3:4 (full-tile image with the title, price and controls overlaid), with overlay styles for the portrait format: soft gradient, frosted reveal-on-hover, or a solid bar with adjustable colour and opacity.
- Optional quantity selector, an “add to cart” button with a custom label, icon, icon-only mode, and colour.
- Per-page rule to hide suggestions once a cross-sell product is already in the cart.
- A global heading above the suggestions, plus per-product short description, image, and link options.
- Works with the classic and the block-based cart/checkout.
- HPOS (High-Performance Order Storage) compatible.
- Query result caching with automatic invalidation for fast mini-cart and checkout on large catalogs.
- Diagnostics tab explaining why suggestions do (or do not) appear, with a preview simulation that never touches the live cart.
How the discount works
The discount is a price reduction on the cart item, not a WooCommerce coupon, so it combines cleanly with coupons. An active sale price stays the basis: the cross-sell discount is calculated from the lower of the regular and sale price and never undercuts the sale price.
Pro add-on
A separate Pro add-on adds role-based discounts: give individual user roles an extra discount on cross-sell products, configurable per role (percentage and “add” or “replace” mode), with optional per-product overrides. The free plugin works fully on its own; the Pro add-on is optional.
Screenshots



Blocks
This plugin provides 1 block.
- Wccs Suggestions
Installation
- Upload the
cross-sell-with-discounts-for-woocommercefolder to/wp-content/plugins/, or install it through the WordPress Plugins screen. - Activate the plugin through the Plugins menu in WordPress. WooCommerce must be installed and active.
- Configure suggestions on two levels:
- Per product (Cross-Selling tab in the product editor): enable the product as a suggestion, set an optional discount, priority, short description, and the trigger categories.
- Per category (category editor): enable the category as a trigger and set how many suggestions it contributes.
- Set the global display under WooCommerce Cross-Sell: heading, button label/icon, display locations (mini-cart / cart / checkout), and performance/caching options.
FAQ
-
Does it work with my theme?
-
Yes. The plugin uses the standard WooCommerce mini-cart hook and works with common themes such as Storefront, Astra, and Kadence. For themes without a matching mini-cart hook or for block themes, use the
[wccs_cross_sell]shortcode or the “Cross-Sell Suggestions” block. A dedicated adapter keeps full Flatsome compatibility. -
Can I change how the suggestions look?
-
Yes. Under WooCommerce Cross-Sell Layout you can choose a stacked list, a horizontal slider (with dots or arrow controls), or a responsive grid. For the grid you set the maximum columns per location (mini-cart, cart, checkout) and an image format (landscape 4:3, square 1:1, or portrait 3:4); card widths are calculated automatically for your theme. You can also set the heading, the add-to-cart button label/icon/colour, and show or hide the quantity selector.
-
Does it support the block-based cart and checkout?
-
Yes. Suggestions are rendered after the checkout block (hydration-safe), and adding a product refreshes the Store API cart and totals without a page reload.
-
Is the discount a coupon?
-
No. It is a price reduction applied to the cart item, so it combines cleanly with WooCommerce coupons. A trigger product must be in the cart for the discount to apply.
-
What happens to my data when I uninstall?
-
Deleting the plugin (not just deactivating it) removes all of its data: the settings option, product metas, and category metas — multisite-wide. There are no custom tables or cron events.
-
Can I give specific user roles an extra discount?
-
That is provided by the optional Pro add-on (role-based discounts, per role, with per-product overrides). The free plugin does not include role discounts.
Reviews
Contributors & Developers
“Cross-Sell with Discounts for WooCommerce” is open source software. The following people have contributed to this plugin.
Contributors“Cross-Sell with Discounts for WooCommerce” has been translated into 2 locales. Thank you to the translators for their contributions.
Translate “Cross-Sell with Discounts for WooCommerce” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.14.3
- New: Option to hide WooCommerce’s own product suggestions — its “Cross-sells” (below the cart table) and “Related products” (on the single product page) — so only your Cross-Sell suggestions are shown. Works even with themes that render these directly (e.g. Flatsome); does not affect the WooCommerce block cart/checkout.
- Fix: Cross-sell suggestion images in the mini-cart no longer flicker when the mini-cart re-renders after add-to-cart. Mini-cart thumbnails now load eagerly instead of lazily, so they paint instantly instead of blinking on the second cart-fragment refresh. Also applied to the added product’s line-item thumbnail.
1.14.2
- Fix: In some themes the cross-sell cards could overlap other page elements (for example a mini-cart footer with the subtotal and buttons). The suggestions now form their own stacking context and stay contained — theme-neutral, no theme markup is touched.
1.14.1
- New: Variable products can now be suggested as cross-sells without a broken button — they show a “Choose option” link to the product page (for selecting a variant) and a “from {lowest price}” price instead of a single variant’s price.
- New: Separate “Button label for variable products” setting.
- New: Card background color (with automatic text contrast) and a thin card border (solid / dashed / dotted) with an inline border color.
- New: The grid on the cart page can now use up to 4 columns.
- Improvement: CSS and JavaScript optimizations for the cross-sell suggestions.
1.14.0
- New: “Grid” layout for cross-sell suggestions — responsive columns with a per-location maximum (mini-cart, cart, checkout). Card widths are calculated automatically for any theme width; a single suggestion fills the full width, and very narrow areas fall back to a compact horizontal card.
- New: Image format for grid tiles — landscape 4:3, square 1:1, or portrait 3:4 (full-tile image with the title, price and controls overlaid).
- New: Overlay style for the 3:4 format — soft gradient, frosted (reveal on hover, with a subtle image zoom), or a solid bar with adjustable color and opacity; text contrast is handled automatically.
- New: Option to show or hide the quantity selector on each suggestion.
- Improvement: CSS and JavaScript optimizations for the cross-sell suggestions.
1.13.3
- New: “Slider” layout for cross-sell suggestions — a horizontal, swipeable and draggable row of cards.
- New: Slider navigation — choose bullets (classic dots, short lines, or pill), side arrows, both, or swipe/drag only.
- New: Optional background color for the “Add to cart” button, with automatic text contrast and hover shade.
- Improved: CSS and JavaScript optimizations for the cross-sell suggestions.
1.13.2
- New: The per-category “Max. suggestions” limit can now be set up to 20 (previously capped at 3).
- Improved: Clearer settings labels and descriptions (cache suggestions, add-to-cart button, prefetch), with consistent “Cross-Sell suggestions” wording.
1.13.1
- Redesigned the plugin settings screen with a modern, card-based layout that is easier to scan and visually consistent with the Pro add-on. No settings or behaviour changed.
1.13.0
- Added two extension hooks for add-ons:
wccs_after_heading(right after the suggestions heading) andwccs_item_badge(inside each suggestion card). They are used by the optional Pro add-on’s info badge and have no visible effect on their own.
1.12.0
- Initial public release on WordPress.org.
- Category-based cross-sell suggestions with optional per-product discount and savings badge.
- Theme-neutral rendering with a shortcode and block; optional Flatsome and WooFood adapters.
- Classic and block-based cart/checkout support; HPOS compatible.
- Per-location display toggles (mini-cart / cart / checkout) and per-page “limit” rules.
- Global heading, query caching with automatic invalidation, and a diagnostics tab.