Understand checkout validation and evidence

The module collects policies from the current cart and groups products that share the same policy URL and PDF URL. Optional general-terms capture uses WooCommerce's selected terms page, including when no product has its own policies.

Classic Checkout

The acceptance control appears before the submit button. Server-side checkout validation rejects the order when policies apply and the checkbox is absent. The accepted snapshot is attached while WooCommerce creates the order.

When general PDF capture is enabled, WooCommerce's native general-terms checkbox must also be explicitly selected. It is rendered unchecked even if a checked-by-default setting is active. Product acceptance does not imply general acceptance, or vice versa. Do not hide or remove the native control.

Checkout Block

The current policy list is published with WooCommerce cart data. The block displays the acceptance control, while the checkout request is also validated and recorded on the server. Browser state alone cannot bypass the requirement.

Enabled general terms appear in that list and are covered by the same explicit block checkbox. The module does not infer acceptance from a native terms notice or a payment click without its submitted acceptance value.

Order and subscription records

Recorded policy evidence appears:

  • in WooCommerce order administration;
  • in HTML and plain-text order emails;
  • on a subscription created from the checkout;
  • on renewal orders copied from that subscription.

An existing recorded snapshot remains immutable when a product policy changes later. Configured PDFs are retrieved when acceptance is recorded and stored as exact copies. Order emails, re-sends, subscription emails, and renewal emails attach those copies without re-downloading newer source documents.

If a configured PDF cannot be retrieved or validated, checkout stops before recording acceptance. PDF addresses and contents are not included in public cart responses. Link-only policies remain supported.

The email attachment step verifies each stored PDF against its recorded SHA-256. Missing or damaged evidence stops the affected email and produces an entry in the WooCommerce logs instead of silently sending an incomplete message. Amazon SES requires a compatible attachment-preserving transport; the Pomatio Platform transport snapshots bytes for its delayed retries.

For an older order with no recorded acceptance, the interface can derive current policy associations from its products and explicitly label that no historical acceptance record is available.

General evidence identifies the selected page, site, title, and acceptance method separately from product policies. Renewals retain the originating acceptance date; they do not pretend the customer accepted today's general terms again. Online links may show a later version, while attached PDFs retain the saved version. Email transport acceptance does not prove mailbox delivery or that the customer read the message.

This feature preserves configured terms copies, not a complete contract assembled from every linked page, product description, project brief, or separate consent. Store owners must supply the applicable information and maintain delivery and retention procedures. PDF hashes detect changed bytes but are not qualified signatures or trusted timestamps.

End-to-end verification

  1. Attempt checkout without selecting the checkbox and confirm rejection.
  2. Accept and complete the order.
  3. Compare the displayed list with order administration and customer email.
  4. Change the product policy and confirm the completed order retains its snapshot.
  5. Test shared URLs and several distinct policies.
  6. If Subscriptions is active, create a subscription and a renewal order.
  7. Test both classic and block checkout when both are available.
  8. Replace or remove the source PDF and resend the original order email; verify its attachment remains the original accepted copy.
  9. Test an unavailable PDF address and confirm checkout stops.
  10. Verify attachment delivery through the actual mail transport, including any delayed retries.
  11. Enable general capture and repeat with general-only and mixed-policy orders. Check the native classic checkbox and the combined block list.
  12. Change the selected general terms page and resend an earlier order. Its original general PDF and acceptance date must remain unchanged.

Do not use a visually hidden checkbox or a cache that serves another customer’s cart policy list.