Terms and Conditions per Product for WooCommerce
by Giannis Kipouros 4.6 (13 reviews)

Terms and Conditions per Product for WooCommerce

Add a required Terms and Conditions checkbox per WooCommerce product, variation, category or tag. Classic and block checkout.

Terms and Conditions per Product for WooCommerce ranks #7,682 among WordPress.org plugins with 700+ active installations, is #189 of 1,454 in the Taxonomy category, a 4.6/5 rating from 13 reviews, and was last updated Oct 12, 2026. Data from WordPress.org, refreshed twice daily — see methodology.

Compatible with WP 7.1
v1.5.0 Current Version v1.5.0
Updated 3 weeks ago Last Update on 12 Oct, 2026
Refreshed 1 week ago Last Refreshed on
#189 of 1,454 in Taxonomy Top 10% by installs Downloads -36.9% this week Actively maintained
View on WordPress.org
Rank
#7,682
— No change
Active Installs
700+
-17.8%
KW Avg Position
94
1 worse
Downloads
20.6K
+7 today
Support Resolved
0%
— No change
Rating
92%
Review 4.6 out of 5
4.6 (13 reviews)

Next Milestone 800

Total Progress 88%
700+ 800+
91
Ranks to Climb
-
Growth Needed
8,000,000
Active Installs
Pro

Unlock Exact Install Count

See the precise estimated active installs for this plugin, calculated from real-time ranking data.

  • Exact install estimates within tiers
  • Track install growth over time
  • Milestone progress predictions
Upgrade to Pro
Need 12 more installs to reach 800+

Rank Changes

7,298 7,490 7,682 7,874 8,066 31-10-2026 01-11-2026 02-11-2026 03-11-2026 04-11-2026 05-11-2026 06-11-2026 07-11-2026
7,600 7,623 7,647 7,670 7,693 23-10-2026 24-10-2026 25-10-2026 26-10-2026 27-10-2026 28-10-2026 29-10-2026 30-10-2026 31-10-2026 01-11-2026 02-11-2026 03-11-2026 04-11-2026 05-11-2026 06-11-2026 07-11-2026
Current #7,682
Change
Best #

Upgrade to Pro

Unlock 30-day and 90-day rank history charts with a Pro subscription.

Upgrade Now

Active Installs Growth

Active Installs 0,000,000+
Growth +0.0%
Peak 0,000,000

Downloads Growth

0 10 20 30 31-10-2026 01-11-2026 02-11-2026 03-11-2026 04-11-2026 05-11-2026 06-11-2026 07-11-2026
0 10 20 30 40 50 60 23-10-2026 24-10-2026 25-10-2026 26-10-2026 27-10-2026 28-10-2026 29-10-2026 30-10-2026 31-10-2026 01-11-2026 02-11-2026 03-11-2026 04-11-2026 05-11-2026 06-11-2026 07-11-2026
Downloads
Growth
Peak

Upgrade to Pro

Unlock 30-day, 90-day, and yearly download history charts with a Pro subscription.

Upgrade Now

Reviews & Ratings

4.6
13 reviews
Overall 92%
5
10 (77%)
4
1 (8%)
3
2 (15%)
2
0 (0%)
1
0 (0%)

Security History

Source: WPVulnerability

2 known vulnerabilities on record · 1 in the last 24 months · checked 3 months ago

  1. Terms & Conditions Per Product [terms-and-conditions-per-product] < 1.2.16

    CVE-2025-30866 · Fixed in v1.2.16

  2. Terms & Conditions Per Product [terms-and-conditions-per-product] < 1.2.6

    CVE-2023-33999 · Fixed in v1.2.6

TL;DR

AI summary of the plugin's readme

This plugin is for WooCommerce store owners who need to set special terms and conditions on specific products, categories, or tags. It solves the problem of ensuring customers see and agree to product-specific terms before completing a purchase.

  • Terms and conditions per product
  • Customizable checkout terms checkbox
  • Require opening Terms URL first
  • Show terms on product page
  • Hide default WooCommerce terms
  • Log user acceptance in orders
  • Terms per category or tag
  • Show terms in modal popup

Frequently Asked Questions

Common questions about Terms and Conditions per Product for WooCommerce

Edit the product, open the Advanced tab and paste the URL of the Terms page that applies to it. Repeat on the next product with a different URL. Each product carries its own, and a customer only ever sees the checkboxes for what is in their cart. On a variable product you can go a level deeper and set a different URL on each variation.
Yes, in the Premium version. Edit a product category or a product tag, set the Terms there, and every product in it is covered. A product with Terms of its own overrides the category. The plugin checks the variation first, then the product, then the category or tag, and the first level with a URL wins.
Yes. Each variation gets its own Terms and Conditions fields on the product edit screen. A variation with no Terms of its own falls back to the ones set on the parent product.
Yes, with the [tacpp_terms] shortcode. On a product page, or inside a product loop, it shows that product's Terms. Anywhere else, give it the product: [tacpp_terms product_id="123"]. A variation ID shows that variation's Terms. It only displays the link; the customer still accepts the Terms at checkout. Nothing is shown for a product without Terms.
Yes. By default every product inside a bundle asks for its own Terms, as well as the bundle. In the Premium version you can change that in two ways, both under Product data > Advanced. On the bundle, tick "Replace bundled products' Terms" so the bundle's Terms cover everything inside it. On a product, tick "Skip Terms inside a bundle" so it stops asking for its Terms whenever it is sold in a bundle. Either one only applies when the bundle has Terms of its own, and a product bought on its own always asks for its Terms.
Yes. The tacpp_order_terms_accepted action fires once per order, as soon as the order is created and before payment, with the Terms the customer ticked. It runs on the classic and the block checkout, in the free and the Premium version, whether or not the acceptance log is switched on. It does not fire for express payments, where no Terms are shown. add_action( 'tacpp_order_terms_accepted', function ( $accepted_terms, $order, $checkout_type ) { foreach ( $accepted_terms as $term ) { // $term['url'], $term['text'], $term['type'], $term['product_id'], $term['variation_id'], $term['term_id'] error_log( sprintf( 'Order %d accepted %s', $order->get_id(), $term['url'] ) ); } }, 10, 3 ); $checkout_type is `classic` or `block`.
In the Premium version, every acceptance is written against the order. Open the order in the admin and the "User Accepted Terms" box lists what was accepted, when, and the exact Terms link the customer was shown, so you are not relying on what that page says today. It works on the classic and the block checkout, and on both legacy and HPOS order storage. The free version enforces the checkbox but keeps no record.
No plugin does that on its own. What this one gives you is a record that a named customer accepted a specific document, at a specific time, on a specific order, which is the part most stores are missing. Whether your Terms themselves and the rest of your data handling meet GDPR is a question for your lawyer.
Yes, since version 1.4.0, on WooCommerce 9.9 or newer. The Block Checkout then works the same way as the classic checkout: Your custom Terms are displayed on the checkout. "Place Order" is blocked until every Terms checkbox has been ticked, and the customer is told which Terms are still missing. The check is repeated on the server before payment is taken, so an order cannot skip it. Acceptance is recorded against the order and shown on the order screen. [Premium] The Terms also keep up with the cart. If the cart changes while the customer is on the checkout, the Terms checkboxes are rebuilt to match it. On WooCommerce older than 9.9 the Block Checkout cannot be used. The checkboxes are still drawn, but the browser has no way to report what was ticked back to the store, so the order is refused when the customer tries to place it. The classic checkout is unaffected and keeps working as it always has. One exception is described in the next question.
No. Express payment buttons, such as Apple Pay, Google Pay and the PayPal button, sit above the checkout form and place the order straight from the payment sheet. The customer never reaches the Terms step, so there is nothing to tick and nothing to record, and the plugin lets those orders through rather than blocking them at a point where the customer cannot do anything about it. If you need consent recorded on every single order, turn off express payment buttons in your payment gateway's settings, so that all customers go through the checkout form.

Sign In / Register

You need to sign in or register to use this feature.