=== 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.