=== Prop 65 Warnings for WooCommerce ===
Contributors: catcodestudio
Tags: prop 65, california, warning, compliance, woocommerce
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Display the California Proposition 65 warning you choose on the product page, cart and checkout, and keep a copy on the order.

== Description ==

If you sell into California and a supplier or your lawyer has told you a product needs a Proposition 65 warning, this plugin puts that warning where shoppers see it and keeps a record of what went out with each order.

**This plugin is not legal advice.** It helps you display a warning you have chosen. It does not decide whether a product needs a warning, which wording fits, or which chemicals to name. Check with your supplier or a California lawyer. It is an independent tool, not affiliated with or endorsed by OEHHA or the State of California.

= What it does =

* Warning wording taken word for word from the regulation, with the section shown next to each option: full-length, short-form, the earlier short-form, food and dietary supplements, acrylamide.
* The yellow triangle symbol, placed left of the text and sized to the signal word.
* A choice of WARNING:, CA WARNING: or CALIFORNIA WARNING:.
* Shows on the product page (the whole warning, or a hyperlink on the signal word), in the cart and at checkout, on classic pages and on the Cart and Checkout blocks.
* Ship-to-California logic: hides the warning once the order is known to ship elsewhere, and updates as the shopper edits the address. While the state is unknown, and for local pickup, the warning stays visible.
* A record on each order: the exact wording, the products, the destination, and whether the checkout page reported displaying it.
* Custom text for wording set elsewhere, such as a court-ordered settlement or a product type with its own section.
* A list of products whose warning is incomplete. A warning with a missing chemical name is never shown half-filled.

= Where the wording comes from =

California Code of Regulations, title 27, sections 25601 to 25603 and 25607.2, amendment filed November 26, 2024, operative January 1, 2025 (Register 2024, No. 48), as published in OEHHA's "Regulations on Proposition 65" (unofficial copy, updated February 2025). Shoppers see the English wording exactly as written there, so it is not offered for translation.

= What the regulation says about online sales =

* § 25602(b)(1): for internet purchases, a warning on the product display page, a clearly marked hyperlink on that page using the word WARNING, CA WARNING or CALIFORNIA WARNING, or a warning otherwise prominently displayed before the purchase is completed.
* § 25602(b)(1)(C): a warning provided with short-form label content may use the same content on the website.
* § 25601(b): the warning names at least one chemical for each endpoint.
* § 25607 et seq.: products with their own section must use that wording to stay in the safe harbor. Use Custom text for these.
* OEHHA's Final Statement of Reasons (October 2024, page 15): under the safe harbor the warning must be provided both on the website and on or with the product. A warning on your website does not replace the one on the product.
* The same document (pages 10-11): the regulation "does not require a warning to any consumers outside of California", and CA WARNING or CALIFORNIA WARNING can mark a warning as California-specific. The regulation has no rule of its own on showing warnings by shipping state, so that choice is yours. You can show the warning to everyone with one setting.
* OEHHA's Omnibus 2026 workshop (July 30, 2026) discussed further changes for internet purchases. These are drafts, not adopted rules, as of October 31, 2026.

// @pro-begin
= Pro =

* Category rules: one warning for a whole category.
* Different warnings for different variations.
* Supplier notice dates, with an email before they come due.
* The warning in customer order emails.
* CSV export of order records.

Pro is sold on [catcode.com.ua](https://catcode.com.ua/modules/catcode-prop65-warnings-for-woocommerce/), with a 7-day trial you start yourself.

// @pro-end
== Installation ==

1. Install and activate the plugin. WooCommerce must be active.
2. Open WooCommerce > Prop 65 Warnings and pick where the warning shows.
3. Edit a product, open the Prop 65 tab, switch the warning on, choose the wording and enter the chemical names.

== Frequently Asked Questions ==

= Is this legal advice? =

No. It displays the warning you choose. It does not tell you whether you need one.

= Does the warning show on the block checkout? =

Yes, above the Place Order button, on both the Checkout block and the classic checkout.

= What does a shopper with no address see? =

The warning. It is held back only when the destination is known to be outside California. On the product page you can choose to wait for the address and rely on the checkout warning instead.

= What about page caching? =

The plain page, as an anonymous visitor gets it, is safe to cache. A page that differs for a shopper with a known address is sent with no-cache headers and marked with DONOTCACHEPAGE. A CDN that ignores these headers could serve one shopper's version to another, so if you use one, choose "Show it" for unknown states and test.

= Why does a record say "Not confirmed"? =

The order had a warning, but the checkout page did not report displaying it. This happens with an express payment button that skips the checkout page, or a theme that removed the checkout section.

= Can I show it in a page builder? =

Use the shortcode [catcode_p65_warning] on a product page, or [catcode_p65_warning id="123"] elsewhere.

= What happens when I delete the plugin? =

The settings are removed. Warnings on products and records on orders stay, because they are your compliance history.

== External services ==

The warning text contains the address www.P65Warnings.ca.gov as a link to the OEHHA website. Nothing is sent there unless a shopper clicks it. The plugin itself contacts no external service.
// @pro-begin

The Pro build connects to catcode.com.ua to activate a licence key and to check for updates. It sends the key, the site address, the plugin version and, for a trial, the e-mail you enter. Terms: https://catcode.com.ua/terms/ Privacy: https://catcode.com.ua/privacy/
// @pro-end

== Changelog ==

= 1.0.0 =
* First release.
// @pro-begin
* Pro updates arrive through Dashboard > Updates.
// @pro-end
