Linux 软件免费装
Banner图

Terms and Conditions per Product for WooCommerce

开发者 giannis4
rbraffin
termsperproduct
thewpgarden
更新时间 2026年10月13日 01:42
PHP版本: 7.4 及以上
WordPress版本: 7.1
版权: GPLv2 or later
版权网址: 版权信息

标签

woocommerce checkout gdpr consent terms and conditions

下载

1.2.9 1.0.6 1.0.7 1.2.1 1.2.2 1.2.5 1.0.14 1.2.7 1.2.10 1.2.0 1.2.12 1.2.16 1.3.1 1.0.3 1.2.11 1.2.13 1.2.14 1.2.3 1.2.6 1.0.4 1.0.5 1.0.0 1.0.13 1.3.0 1.0.15 1.0.2 1.2.8 1.3.2 1.4.0 1.0.12 1.1.0 1.2.15 1.2.17 1.5.0

详情介绍:

WooCommerce gives you one Terms and Conditions checkbox for the whole store. Some products need their own: a non-refundable deposit, a digital download you cannot take back, an age-restricted item, a rental with a damage clause, a booking with a cancellation window. This plugin adds a Terms URL to any product, variation, product category or product tag. When that item is in the cart, its own checkbox appears at checkout, and the customer cannot place the order until every box is ticked. Everything else about your checkout stays as it is. Requires: WooCommerce 9.9 or newer. Works with: the classic checkout, the WooCommerce Checkout block, and HPOS. How it works
  1. Edit a product and open the Advanced tab. Paste the URL of your Terms page and, if you want, the link text.
  2. The checkbox appears at checkout for every customer with that product in the cart, once per product, however many times it appears in the order.
  3. The customer ticks it and the order goes through. With the Premium version, the acceptance is written against the order with a timestamp, the user and the exact Terms link that was shown.
Who it is for 🛍️ Shops selling both ordinary goods and items with their own conditions, where a single store-wide checkbox says nothing useful. 💾 Digital products and downloads with a no-refund policy. 🔞 Age-restricted goods, where you need the customer to confirm before checkout. 🔑 Rentals, hire and equipment, with a separate damage or return agreement. 🛠️ Deposits, made-to-order and custom work, where the cancellation terms differ per item. 📅 Services and bookings, where each service carries its own cancellation window. Free features ✅ Terms and Conditions URL and link text on any product. ✅ Different Terms on each variation of a variable product. ✅ A checkbox per product at checkout, on both the classic checkout and the WooCommerce block checkout. ✅ Server-side validation. Acceptance is checked again on the server before payment is taken, so an order cannot get through without it. ✅ Optionally require the customer to open the Terms link before the checkbox unlocks. ✅ Optionally show the Terms on the single product page. ✅ A [tacpp_terms] shortcode to show a product's Terms anywhere else. ✅ Optionally hide the default WooCommerce Terms checkbox when custom Terms apply. ✅ Filters and actions throughout, for developers. See the hooks reference. ✅ Translation ready. Premium features 🗂️ Terms per product category and per product tag, so a whole range is covered by one setting. 📋 An acceptance log on the order screen: who accepted what, when, and which link they were shown. Useful the day a customer disputes a charge. 🪟 Open Terms in a modal instead of a new tab, for your Terms and for the default WooCommerce ones. 📦 WooCommerce Product Bundles support: let a bundle's Terms replace the Terms of the products inside it, or let a product skip its own Terms when it is sold inside a bundle. See Premium plans and pricing. Built for current WooCommerce Block checkout is supported in full since 1.4.0, on WooCommerce 9.9 and above. The checkboxes render inside the checkout block, they rebuild themselves when the cart changes mid-checkout, and the acceptance is verified again through the Store API before stock is reserved or payment is taken. HPOS (High-Performance Order Storage) is supported on the order screens. What this plugin does not do It does not write your Terms and it is not legal advice. You host your Terms on your own page or PDF. The plugin links to them, requires the tick, and records it. Documentation and support 📖 Documentation: setup and a guide for every feature, from adding Terms to products to block checkout and the acceptance log. 🛟 Support forum: questions and bug reports. We answer every topic. ✉️ Contact us: Premium support, and anything that is not a support question. Like it? A 5-star review is the most useful thing you can do for a small plugin. It takes a minute and helps other store owners find it. More from The WP Garden Terms and Conditions per Product is made and maintained by The WP Garden, small focused plugins for WooCommerce, BuddyPress and WordPress.

安装:

  1. In your WordPress admin, go to Plugins > Add New Plugin, search for "Terms and Conditions per Product", then click Install Now and Activate.
  2. WooCommerce 9.9 or newer must be installed and active.
  3. Edit a product, open Product data > Advanced, and paste the URL of its Terms page. The checkout options live under Terms of Use in the admin menu.
The guide to adding Terms to products walks through the same steps in detail.

屏幕截图:

  • The per-product Terms checkbox on the checkout, next to the default WooCommerce one.
  • The error shown when a customer tries to order without accepting the Terms.
  • Separate Terms on each variation of a variable product.
  • Terms set on a product category, applied to every product in it.
  • The Terms opened in a modal, without leaving the checkout.
  • The acceptance log on the order screen: who accepted, when, and which link.
  • Product Bundles: the bundle's Terms can replace the Terms of every product inside it.
  • One Terms checkbox for the whole bundle at checkout, instead of one per bundled product.
  • The [tacpp_terms] shortcode showing each product's Terms on an ordinary page.
  • The settings page.

升级注意事项:

1.4.0 Full Checkout block support, with acceptance validated on the server. Requires WooCommerce 9.9 or newer: on older versions the Checkout block refuses orders, while the classic checkout keeps working.

常见问题:

How do I add different terms to different products?

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.

Can I set terms for a whole product category instead of each product?

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.

Does it work with variable products?

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.

Can I show a product's Terms outside the product page and checkout?

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.

Does it work with WooCommerce Product Bundles?

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.

Can I run my own code when the customer accepts the 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.

Where is the proof that the customer accepted?

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.

Does this make my store GDPR compliant?

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.

Is this plugin compatible with WooCommerce Checkout Blocks?

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.

Do the Terms apply to express payment buttons?

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.

Does "Ensure users open the terms' link before purchase" stop someone ticking the box without reading?

It stops the obvious case. The checkbox stays disabled until the Terms link has been opened, on both the classic and the Block Checkout. This runs in the customer's browser, because opening a link is not something a website can confirm from the server. Treat it as a prompt to read the Terms, not as proof that they were read. What is recorded in the acceptance log is that the checkbox was ticked.

Will it work with my theme?

The checkboxes render through WooCommerce's own checkout hooks and inside the Checkout block, so any theme that uses the standard WooCommerce checkout should work. If yours does not, tell us in the support forum.

Can I translate Terms and Conditions per Product?

Yes. You can translate Terms and Conditions per Product into your language.

How do I get support?

Open a topic in the WordPress.org support forum. Premium customers can also contact us directly.

Where is the documentation?

At thewpgarden.com/docs/terms-and-conditions-per-product: setup, plus a guide for every feature.

What are Terms and Conditions?

Terms and Conditions are the rules and regulations that govern the use of a website or a service. They are also known as Terms of Service or Terms of Use.

更新日志:

1.5.0 1.4.0 1.3.2 1.3.1 1.3 1.2.18 1.2.17 1.2.16 1.2.15 1.2.14 1.2.13 1.2.12 1.2.11 1.2.10 1.2.9 1.2.8 1.2.7 1.2.6 1.2.5 1.2.3 1.2.2 1.2.1 1.2.0 1.1.0 1.0.15 1.0.13 1.0.12 1.0.11 1.0.9 1.0.8 1.0.7 1.0.6 1.0.5 1.0.4 1.0.3 1.0.2 1.0.1 1.0.0