ConicPlex

Start Your Project

Illustration of a document with a checkmark badge representing per-product terms and conditions acceptance in WooCommerce

On this Page

How to Add Terms and Conditions per Product in WooCommerce (3 Plugins Compared)

WooCommerce ships with one store-wide terms and conditions checkbox. Here is how to require product-specific terms instead, comparing 3 real plugins by price, setup, and limitations.

Sajil Memon

October 23, 2026

WooCommerce gives every order the same single terms and conditions checkbox, tied to one page, regardless of what’s in the cart. That breaks down the moment a store sells something with its own conditions: a non-refundable deposit, a rental with a damage clause, an age-restricted item, a booking with a cancellation window. Three plugins handle this, but only one of them is actually built for per-product terms. Terms and Conditions per Product ties a checkbox to a specific product, variation, category, or tag. Additional Terms Lite and Digital Signature Checkout solve the simpler, store-wide version instead, with a second checkbox or a signature pad.

Plugin Best for Price Last updated
Terms and Conditions per Product True per-product, per-variation, per-category terms Free, Premium from $39/year October 12, 2026
Additional Terms Lite for WooCommerce One extra store-wide policy checkbox Free, Pro from $39/year September 14, 2026
Digital Signature Checkout For WooCommerce Signature-based consent instead of a checkbox Free, Pro from $25 June 29, 2026

Terms and Conditions per Product for WooCommerce

  • Price: Free, Premium from $39/year
  • Requires: WordPress 6.7+, PHP 7.4+
  • Last updated: October 12, 2026

Terms and Conditions per Product is the only plugin in this comparison that actually ties a terms checkbox to something other than the whole store. A Terms URL (and optional link text) gets attached to a product, a specific variation, a product category, or a product tag, through the Advanced tab on the product edit screen. The moment that item lands in a customer’s cart, its own checkbox shows up at checkout, separate from, or in place of, WooCommerce’s default terms box. The differentiator over the next two plugins is scope: this one knows which product triggered the requirement, the others don’t.

Setup happens on the product itself, not in a separate settings panel. Open a product, go to Product data, then Advanced, and paste the Terms URL. The checkbox renders once per distinct product in the cart, so ordering the same item three times doesn’t produce three checkboxes. It works on both the classic checkout and the WooCommerce Checkout block, which matters more than it sounds. The block checkout talks to the Store API, and acceptance gets re-validated server-side through that API before stock is reserved, not just checked once in the browser and trusted. HPOS (High-Performance Order Storage) is supported on the order screens too, so a store that has already migrated off post-based order storage doesn’t need to configure anything extra.

The free version covers one product, variation, category, or tag at a time, and it doesn’t write anything into the order itself. If a customer disputes a charge six months later, there’s no record on that order of what they ticked or when, only the fact that checkout let them through. That acceptance log, along with bulk per-category and per-tag rules and a modal display instead of a new tab, is Premium-only, at $39/year for one site. For a shop with a handful of flagged products, the free tier is probably enough. For one that needs to prove consent later, budget for Premium from the start rather than adding it after the first dispute.

Additional Terms Lite for WooCommerce

  • Price: Free, Pro from $39/year
  • Requires: WordPress 6.5+, PHP 7.4+
  • Last updated: September 14, 2026

Additional Terms Lite for WooCommerce solves a different problem than it sounds like it does. It adds one more “I agree” checkbox to checkout, store-wide, alongside WooCommerce’s default terms box. It has no idea which product is in the cart. If the actual goal is per-product terms, this plugin can’t do it on its own, full stop. What it’s genuinely good for is the simpler case: a store that needs exactly one additional blanket policy acknowledged by every customer on every order, something like a no-refund policy on a clearance sale or a standing age-restriction notice that applies across the board.

Setup is the fastest of the three. Write the checkbox text, optionally link a policy page through the {{additional-terms}} smart tag, decide whether ticking it is required or just a notice, and save. There’s no product-level configuration because there’s no product-level targeting to configure. Where it does better than the dedicated per-product plugin is that acceptance gets saved against the order by default, in the free Lite tier, not gated behind a paid upgrade.

The honest limitation is the one from the opening paragraph: this is a global checkbox, not a conditional one. A store that reaches for Additional Terms Lite expecting per-product behavior because it got lumped into the same search results as the dedicated plugin is choosing the wrong tool. It’s a strong fit when one extra store-wide agreement covers the actual need. It’s the wrong fit when a rental needs a damage clause and a digital download needs a no-refund notice and those need to show up on different orders.

Digital Signature Checkout For WooCommerce

  • Price: Free, Pro from $25
  • Requires: WordPress 5.5+, PHP 7.4+
  • Last updated: June 29, 2026

Digital Signature Checkout For WooCommerce swaps the mechanism entirely. Instead of a checkbox, it drops a signature canvas onto the checkout page, and the customer draws a signature with a mouse, finger, or stylus before the order can complete. That’s a meaningfully stronger consent record than a tick box for stores that actually need one: service businesses collecting sign-off before a booking, healthcare and wellness intake forms, anything where “they clicked a box” wouldn’t hold up as well as “they signed this.” It runs store-wide rather than per product though, the same scope limitation as Additional Terms Lite, just with a different capture method.

Setup is a single settings screen under Digital Signature in the admin sidebar, and it works on both the classic and block checkout without a separate configuration path for each. The signature gets saved to the order and can be displayed wherever the order details show up, with no redirect to a third-party e-signing service in the middle of checkout.

This is the newest and smallest plugin of the three, at version 1.0 with two customer reviews on record as of this writing. It’s worth testing on a staging checkout before relying on it for anything with real legal weight, the way a more established plugin has already proven out through years of stores actually using it. It also doesn’t target specific products any more than Additional Terms Lite does, so it’s solving a different shape of problem than true per-product terms, just a more demanding version of the store-wide one.

How to Pick

  1. If different products genuinely need different terms (a rental’s damage clause isn’t a digital download’s no-refund notice), use Terms and Conditions per Product. It’s the only one of the three that’s actually conditional on what’s in the cart.
  2. If the store just needs one additional store-wide policy acknowledged on every order, Additional Terms Lite is faster to set up and cheaper to reach for than building per-product rules it doesn’t actually need.
  3. If the consent needs to carry more legal weight than a checkbox, a liability waiver, a booking confirmation, an intake form, use Digital Signature Checkout, and budget time to test it before go-live given how new it is.
  4. If proof of consent matters later, check which tier actually logs it. Additional Terms Lite logs acceptance on the order in its free tier already. Terms and Conditions per Product only logs who accepted what and when on Premium, so that’s the one to budget for if the flagged products are the kind that generate disputes.

None of this maps cleanly onto anything ConicPlex builds off the shelf; our own plugins cover block-editor content tools, bookings, and affiliate listings, not checkout consent logic. For a store that needs something more specific than what’s available as a packaged plugin, combining a signature with a product-specific checkbox, or syncing acceptance records into a CRM, our plugin development team builds that directly instead of forcing it through a general-purpose plugin. The same applies to broader WooCommerce development work beyond just the checkout step.

Terms acceptance is one of several things WooCommerce’s default checkout doesn’t handle well out of the box. The same gap shows up with adding a required field like an EU VAT number, and with restricting checkout itself to certain hours. Both are solved the same way: a small, focused plugin rather than a page builder workaround.

FAQ

Does WooCommerce support per-product terms and conditions natively?
No. The built-in WooCommerce terms setting is one page and one checkbox, applied store-wide to every order. Per-product terms need a dedicated plugin like the one covered here.

Can I require terms acceptance on the WooCommerce block checkout, not just the classic one?
Yes, for all three plugins in this comparison. Each one states explicit support for the Checkout block, not just the older shortcode-based checkout, which matters since newer WooCommerce installs default to the block checkout.

Will a terms checkbox plugin still work after migrating to HPOS?
Terms and Conditions per Product explicitly states HPOS (High-Performance Order Storage) support on the order screens. It’s worth confirming the others in a staging environment if HPOS migration happened recently, rather than assuming compatibility.

Is a signature actually a stronger legal record than a checkbox?
It’s generally treated as more deliberate evidence of intent than a tick box, since it takes an active, specific action to produce. Neither replaces real legal advice on what a particular business actually needs to collect and retain.

What happens if a customer orders a product with per-product terms more than once in the same order?
With Terms and Conditions per Product, the checkbox for that item appears once per distinct product, not once per unit, so ordering three of the same item still shows a single checkbox for it.

Sources

Sajil Memon is a co-founder of ConicPlex and a Senior Full Stack Developer focused on backend work: Node.js, PHP, APIs, and the infrastructure decisions that determine whether a system holds up under real traffic. He’s spent years on the side of a project that doesn’t get demoed, the part that has to keep working after launch. He writes here about the technical tradeoffs in backend architecture, deployment, and data handling that only become obvious once something breaks in production.

Leave a Reply

Your email address will not be published. Required fields are marked *

Keep reading

News & Updates

A dimly lit developer workspace at night with a monitor glowing violet and indigo showing abstract swirling corrupted light patterns, next to a small elephant figurine on the desk, symbolizing a critical PHP runtime vulnerability

PHP Ships Emergency Patches for Two Critical RCE Flaws Dubbed PHP2Shell

PHP shipped emergency patches on October 21, 2026 for two critical unauthenticated RCE flaws dubbed PHP2Shell, affecting every PHP install…

Sajil Memon

October 22, 2026

Plugins

Three overlapping testimonial cards with a quotation mark and five-star rating icon, representing WordPress block editor testimonial plugins

3 Testimonial Block Plugins for the WordPress Block Editor

A practical comparison of WordPress block editor testimonial plugins, with real setup steps, pricing, and limitations for each….

Husen Memon

October 22, 2026

Software

A backend developer desk at night with dual monitors showing terminal and log windows, a keyboard, and a coffee mug, with a server rack visible through a glass wall in the background

Why Marketplace Platforms Need Idempotent Webhooks to Scale

A webhook that fires once in testing will fire twice, three times, or out of order in production. That is…

Sajil Memon

October 21, 2026

WhatsApp
Husen Memon
Husen Memon
Typically replies instant