=== Datalayer Tracking via DataReshape for WooCommerce ===
Contributors: rwky
Donate link: https://www.paypal.me/eduardvd
Tags: datareshape, first-party-tracking, datalayer-tracking, woocommerce-tracking
Requires at least: 6.0
Tested up to: 6.9
Requires PHP: 7.4
WC requires at least: 8.2
WC tested up to: 10.7
Stable tag: 0.6
Requires Plugins: woocommerce
WC HPOS compatible: yes
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Official WooCommerce integration for DataReshape, enabling structured ecommerce tracking through the DataReshape platform.

== Description ==

DataReshape for WooCommerce integrates seamlessly with your WooCommerce-powered store, providing a structured and reliable way to track ecommerce events using a modern dataLayer approach, built and tested specifically for DataReshape.

This plugin does not replace analytics tools like Google Analytics or Meta Pixel. Instead, it acts as a bridge between WooCommerce and DataReshape, which handles event processing, routing, and deduplication.

An active [DataReshape](https://datareshape.ro) plan is required to use this plugin. All tracking logic, integrations, and event delivery are managed through the DataReshape platform.

It supports browser-side tracking for the full ecommerce funnel, allowing seamless integration with advanced analytics setups.

== Features ==

= Core Features =
- Global enable/disable for the integration
- DataReshape library integration
- Subdomain tracking support
- Fully compatible with WooCommerce HPOS (High-Performance Order Storage)

= Browser Events =
- View Item
- Add to Cart (AJAX + fallback for redirects)
- View Cart
- Remove from Cart
- Begin Checkout
- Purchase
- Google Consent Mode support
- Plain user data in dataLayer (DataReshape hashes server-side)

= Advanced Tracking =
- Full GA4-style ecommerce structure
- Product-level and cart-level data
- Coupon tracking (cart-level injection)
- Tax, discount, and stock status support
- Works with both simple, variable products and bundled products

= Reliability Enhancements =
- Handles non-AJAX add-to-cart flows
- Handles redirect-based add-to-cart (?add-to-cart=)
- Handles WooCommerce notices fallback
- Safe execution timing for low overhead
- Logging support via WooCommerce logger (for debugging enabled flows)

== Installation ==

1. Upload the plugin to the `/wp-content/plugins/` directory
2. Activate the plugin through the 'Plugins' screen in WordPress
3. Ensure WooCommerce is installed and active
4. Go to WooCommerce → Settings → DataReshape (or plugin tab)
5. Configure your integration settings

== Configuration ==

= Integration Setup =
- Enable Integration
- Tracking Subdomain
- Library ID

= Browser Events =
- Enable/disable individual events
- Consent mode configuration

== Frequently Asked Questions ==

= Does this plugin support GA4? =
Not quite! The plugin exposes a GA4-compatible ecommerce dataLayer, but actual tracking, routing, and integrations are handled via DataReshape only!

= Does it work without AJAX add-to-cart? =
Yes. It includes fallback mechanisms for redirect-based add-to-cart flows (native WooCommerce redirect to cart after adding a product).

= Does it support server-side tracking? =
Not in this version. Server-side tracking is planned for a future release.

= Will this slow down my website? =
No. The plugin is designed with performance in mind and uses lightweight, conditional execution; if anything, your setup should see a boost in speed compared to clasic integrationg (Meta, TikTok and Google).

= Is deduplication handled? =
Deduplication is handled by DataReshape. The plugin focuses on exposing accurate and complete data for DataReshape to pickup and process onward.

== Screenshots ==

1. Initial dashboard with general settings (Integration setup tab)
2. Browser events configuration tab

== Changelog ==

= 0.6 =
- Updated WC version compatibility
- Fixed PII cache leak on identity-bearing pages (thankyou + cart/checkout).
- Declared HPOS and Cart/Checkout Blocks compatibility so the plugin is no longer flagged under WooCommerce → Settings → Advanced → Features.

= 0.5 =
- Fixed a PII leak on page-cached thankyou pages (LiteSpeed Cache and cache plugins) where a previous buyer's identity data could be served from cache to the next visitor.
- User data is pushed plain to the dataLayer; DataReshape hashes server-side. The "Send plaintext user data" toggle was removed.
- Added a tracking endpoint health check on save and a "Check tracking endpoint" button to re-run it on demand.
- Settings header shows a wordpress.org update-available pill when a newer release is published.
- Loader URL now tags the installed plugin version (`&wp=`).

= 0.4 =
- Settings checkboxes default to off on fresh installs. Existing installs keep their current values.
- Added an admin warning notice when the plugin is active but not configured.

= 0.3 =
- Improved AJAX add-to-cart detection — works with third-party AJAX add-to-cart plugins (e.g. QuadLayers) and themes whose buttons don't expose `data-product_id`.
- Removed the in-page dataLayer debug overlay.

= 0.1 =
- Initial release.

== Upgrade Notice ==

= 0.6 =
Fixes a PII cache leak where a previous buyer's identity could appear in `window.dataLayer` for subsequent visitors on cached pages (reproduced on Kinsta and LiteSpeed). Identity is now hydrated client-side from cookies so cached HTML carries no PII. Also declares HPOS and Cart/Checkout Blocks compatibility under WooCommerce → Settings → Advanced → Features.

= 0.5 =
Fixes a PII leak under page-caching plugins (notably LiteSpeed Cache) where a previous buyer's identity data could be served from cache to the next visitor. Also adds an on-save tracking endpoint health check (with an on-demand re-check button), removes browser-side SHA256 hashing in favour of DataReshape's server-side hashing, tags the loader request with the plugin version, and surfaces an update-available badge in the settings header.

= 0.4 =
Defaults all settings checkboxes to off on fresh installs (existing sites are not affected) and adds an admin warning notice when the integration is active but not configured.

= 0.3 =
Improves AJAX add-to-cart detection compatibility (notably with QuadLayers Ajax-Add-to-Cart and themes that AJAX the single-product page) and removes the in-page debug overlay.

= 0.1 =
Initial release.