Skip to main content

Changelog Pro

== Changelog ==

= 1.64.0 = 29.07.2026

  • New: Added the pmw_facebook_pixel_identifiers filter for tracking multiple Facebook (Meta) pixels at the same time; every browser event is sent to all configured pixels
  • New: Added a check that detects active Meta Event Setup Tool rules on the Facebook pixel and warns in the opportunities and the debug info, because those point-and-click rules fire additional events without deduplication and mostly without values, which inflates event counts and corrupts purchase values in Meta
  • New: Added an "Ask Pixie" chat icon next to most settings, from the pixel IDs and API tokens to the consent and order configuration options, that opens the AI assistant with a ready-to-send question about that setting
  • New: Added Criteo as a new tracking pixel (Pro, beta), loading the Criteo OneTag and sending the full shopping journey to Criteo for retargeting and audience building: homepage views, product listing views, product views, add to cart, basket views, and purchases with order ID and product details; an optional advanced matching setting sends the hashed email of logged-in customers and purchasers to improve match rates
  • New: Added Nextdoor as a new tracking pixel (Pro, beta), loading the Nextdoor Universal Pixel and sending the standardized conversion events Nextdoor uses for attribution and campaign optimization: page views, product views, add to cart, checkout initiation, searches, and purchases with order ID, order value, and product details; an optional advanced matching setting sends the hashed email of logged-in customers and purchasers to improve match rates
  • New: Added the Nextdoor Conversion API (Pro, beta): with a Conversion API token set, all Nextdoor events are also sent server-side, including purchases triggered by WooCommerce order hooks, with shared event IDs so Nextdoor deduplicates the browser pixel and the server events; the Nextdoor click ID (ndclid) is captured on the landing page and attached for attribution, a test event code setting marks events as test events, and the events are routed through the server-side proxy when SweetCode Cloud is connected
  • New: Additional Facebook pixels added through the pmw_facebook_pixel_identifiers filter can carry their own Conversion API token, so server-side events, including purchases and subscription lifecycle events, are sent to every pixel, both when sending directly and through the server-side proxy (Pro)
  • New: The OpenAI (ChatGPT) Conversions API now includes the ChatGPT click reference (the oppref URL parameter): it is captured on the landing page, preserved through checkout, and attached to all Conversions API events, including the purchase and subscription events, so OpenAI can attribute conversions to the originating ChatGPT interaction (Pro)
  • New: Added Hyros as a new tracking pixel (Pro, beta) in the Attribution category, loading the Hyros Universal Script consent-aware and cache-safe on every page, so the tracking script no longer has to be pasted into the theme header; just enter the product hash from Hyros, or paste the whole Universal Script snippet and the Pixel Manager extracts it; the shopping funnel milestones (add to cart, checkout start, purchase) are added to the visitor journey as Hyros action tags, and an optional application tag setting separates the shop traffic from other funnels on the same Hyros account
  • Tweak: The Facebook (Meta) pixel now detects when another script on the site has defined window.fbq before the Pixel Manager loaded it and logs a clear warning in the browser console, because such a script prevents Meta's standard bootstrap from loading fbevents.js and the browser pixel silently stops tracking
  • Tweak: The Pixel Manager now detects when Meta restricts events for a Facebook (Meta) pixel because of its business category (e.g. health and wellness) and reports the restricted event names in the browser console and in the debug info, because Meta silently drops those events in the browser and on the Conversion API while page views keep working, which looks like a tracking failure even though it is enforced by Meta; a business category review can be requested in the Meta Events Manager
  • Tweak: API tokens are now masked in the log; with request logging enabled, credentials that travel in the request URL (Meta and Snapchat access tokens, the GA4 Measurement Protocol API secret) or in an authorization header used to end up in clear text in the WooCommerce log, which is a file that gets shared with support and third parties; only the last four characters of a credential are shown now, and unknown URL parameters are masked by default
  • Tweak: The "PMW pixels not fired" counter above the WooCommerce order list no longer loads every matching order into memory just to count it; the number now comes from a counting query and is cached for a few minutes, which noticeably speeds up the order list on shops with many orders
  • Tweak: The order value calculation no longer looks up the brand and the categories of the same product more than once per request, which reduces the number of database queries on shop, category, cart, and order pages, most visibly on pages that list many products
  • Tweak: The notification count next to the Pixel Manager entry in the WooCommerce menu is now cached instead of being recalculated on every single admin page load; calculating it meant loading all opportunity checks, one of which aggregates the tracking accuracy statistics, so every admin page in the shop paid for it
  • Tweak: The notification script and stylesheet are now only loaded on the admin pages that can actually display a Pixel Manager notification (the WordPress dashboard and the Pixel Manager settings), instead of on every admin page
  • Tweak: The tracking accuracy database maintenance (creating the table after an update and scheduling the one-time backfill) no longer runs on storefront and checkout requests; until the backfill had finished, every single page view asked the Action Scheduler whether the backfill was already queued, which is a database query on the critical path; the maintenance now runs on admin, cron, and WP-CLI requests only
  • Tweak: The tracking accuracy statistics no longer re-check whether their database table exists on every read and write within the same request, which removes several redundant queries from the purchase path
  • Tweak: The product identifier setting now refers to the "Google for WooCommerce" plugin under its current name instead of "Google Listings & Ads", with the former name kept as a hint so the option is still recognizable; the plugin was renamed by WooCommerce a while ago, and the old name made it hard to tell which of the two plugins the gla_ option belongs to
  • Tweak: Orders are now saved only once during checkout instead of once per active server-side integration; with several server-side integrations enabled (for example the Meta Conversion API, the GA4 Measurement Protocol, and the TikTok Events API), storing the tracking identifiers on the order triggered a separate full order write for each of them, which slowed down the checkout on busy shops (Pro)
  • Tweak: The lifetime value recalculation control now shows what will actually happen: the first click schedules the run for 2:00 AM so it stays out of your busiest hours, and while it is scheduled you can start it immediately instead or stop it again; the button previously said it would recalculate right away while it only ever scheduled an overnight run (Pro)
  • Fix: Corrected broken or outdated documentation links in the settings (SweetCode Cloud, LinkedIn, Reddit, LTV recalculation) and added the missing documentation link to the "Disable tracking for user roles" setting
  • Fix: The add to cart event for WooCommerce Product Bundles now reports the value of the bundle as configured by the shopper, instead of the static minimum bundle price, which is 0 for bundles where all items are optional or for bundled subscriptions without an up-front fee
  • Fix: The add to cart event for WooCommerce Product Bundles now reads the quantity from the bundle's own quantity field; before, it could pick up the quantity of the first bundled item
  • Fix: The customer lifetime value is now resolved per email address; when more than one email address was looked up during the same request, every address after the first one received the order history of the first one, which reported the wrong lifetime value
  • Fix: The OpenAI (ChatGPT) settings (pixel ID, advanced matching, and the Conversions API token) are now part of the Abilities API settings catalog; before, AI agents could not discover or configure the OpenAI pixel (Pro)
  • Fix: Removing the GA4 Measurement Protocol API secret and adding it back later no longer sends the purchases of the orders that were paid in the meantime a second time; while the API secret is empty the purchase is sent from the browser instead, which is now recorded on the order so the Measurement Protocol skips it when that order later moves to another paid status, for example from processing to completed; before, those orders were counted twice in GA4, with the duplicate landing on the date of the status change and without a traffic source (Pro)
  • Fix: Removed the "Automatic LTV recalculation" setting, which had no effect; the background detection it described was switched off some time ago because it caused serious performance problems on large shops, so the setting promised something that never happened; the lifetime value of a customer is still updated automatically after a refund or a cancellation, and a full recalculation across all customers is started from the recalculation control in the shop settings, which is the right moment to run it after changing the order value logic or a value filter in your theme (Pro)

= 1.63.0 = 15.07.2026

  • New: Added GroundTruth as a new tracking pixel (Pro, beta), loading the GroundTruth Web Engagement Pixel for omnichannel ad attribution across mobile, desktop, CTV, and audio, and sending add to cart and purchase events with order values; just enter the GTID provided by your GroundTruth representative
  • New: Added Triple Whale as a new tracking pixel (Pro, beta) under a new Attribution category; a single toggle loads the Triple Pixel for visitor journey tracking (no pixel ID needed, the shop is identified by its domain), and an optional Orders API key syncs order records including refunds server-side to Triple Whale, which completes the attribution without connecting the store's REST API to Triple Whale
  • New: Added an Attribution pixel category, which appears as its own group in the settings and follows the statistics consent category for consent management
  • Tweak: Internal improvements to the tracking pixel framework

= 1.62.1 = 14.07.2026

  • Tweak: The begin_checkout event now also fires when a shopper lands on the checkout page with items in the cart, covering flows that never click a proceed-to-checkout button, such as funnel builders, buy-now links, direct checkout links, and block-based carts; the event waits for the cart to be synced so it carries the products, value, and currency, fires only once per checkout session, skips the order-pay page, and can be disabled with the pmw_fire_begin_checkout_on_checkout_page filter
  • Fix: The Conversion Cart Data setting could not be saved on the free version even though it is a free feature; the classic interface silently discarded the value and the Nova interface rejected it with a Pro license error
  • Fix: Calling pmw.addProductToCart() on pages whose data layer contains no products, such as funnel checkout pages that are populated server-side, threw an error instead of loading the product details from the backend, so the add to cart event went out without product data
  • Tweak: The purchase confirmation redirect check in the debug info no longer warns about benign canonical redirects, such as http to https, www, trailing slash, or language redirects that end on the order confirmation page; the check now follows the redirect chain like a browser and only warns when the chain actually leaves the order confirmation page
  • Tweak: The Tag Gateway local proxy now identifies itself to Google's first-party serving infrastructure with a dedicated developer ID header, which Google's tag platform team requested so their support teams can recognize the Pixel Manager proxy setup when merchants contact them with measurement questions
  • Tweak: Added the pmw_output_product_data_layer_script and pmw_defer_product_data_layer_to_footer filters, which keep product list tracking (view_item_list and select_item) working inside page builders that strip inline scripts from product loops, such as the Elementor Products widget
  • Tweak: The Nova interface now recovers automatically when the WordPress session security token expires after the admin page has been open for a long time, instead of failing to save settings
  • Tweak: Replaced the support chat agent in the admin interface with the new Engadin chat, which also supports voice input
  • Tweak: Confirmed compatibility with WordPress 7.0 and WooCommerce 10.9.4
  • Tweak: Updated the bundled third-party libraries to their current releases
  • Tweak: Updated the translation template (.pot file)

= 1.62.0 = 04.07.2026

  • New: Nova is now the default Pixel Manager interface for all installs. Installs that were still on the Classic interface are switched automatically and see a one-time notice; all settings and tracking remain exactly as they were, and one click switches back to the Classic interface at any time
  • Fix: On stores with a persistent object cache, such as Redis, creating a subscription renewal order in the background could fail with a fatal error while the Pixel Manager marked the new order for tracking, which in turn caused the scheduled renewal payment to fail; the Pixel Manager now uses the order object that WooCommerce hands over directly and skips the marking gracefully if the order cannot be loaded
  • Fix: On the Pro version distributed through the WooCommerce.com marketplace, the storefront was served the free JavaScript bundle even though the plugin correctly reported Pro everywhere in the admin, so Pro-only browser pixels silently did not fire; the storefront now receives the Pro bundle
  • Fix: On the Pro version distributed through the WooCommerce.com marketplace, the payment gateway accuracy report presented the Automatic Conversion Recovery columns as a locked Pro feature even though they are included in that version
  • Tweak: The interface choice (Nova or Classic) is now remembered per user account instead of per browser session, so it persists across sessions, browsers, and devices

= 1.61.2 = 02.07.2026

  • Fix: Orders that are created without a customer browser session, such as automatic subscription renewals and orders created in the WP Admin, are no longer counted in the payment gateway tracking accuracy statistics, where they previously dragged down the reported accuracy on stores with many renewals
  • Fix: When the consent module fails to load, for example because an optimization plugin serves stale script chunks, the Pixel Manager now reliably enforces its deny-by-default state; previously, with Google Consent Mode enabled, the gtag.js library could still be requested in this state even though no consent signals could be delivered to it
  • Tweak: Added a pmw_count_order_for_tracking_accuracy filter to exclude additional order types from the tracking accuracy statistics, for example renewal orders created by third-party subscription plugins that the Pixel Manager cannot detect generically
  • Tweak: The Tracking Pixels page now leads with the most popular platforms, so a fresh install sees Google and Meta first, while the complete catalog remains listed right below
  • Tweak: On fresh installs the optimization score now starts at zero and grows as the getting-started checklist is completed, instead of reporting a perfect score before the first pixel is even configured
  • Tweak: The Pixel Manager menu badge now also counts the remaining getting-started steps on fresh installs, so an interrupted setup is easy to spot and resume
  • New: Fresh installs now get an immediate "it works" confirmation: after setting up the first pixel, the dashboard invites you to open your shop and turns green the moment your pixels are confirmed live on the storefront, and it celebrates the first order that was tracked end to end; the storefront reports this exactly once through a one-shot beacon that disables itself afterwards and never sends any visitor data
  • Tweak: The getting-started checklist is one step shorter: the general settings review step was removed, and the "See what Pro unlocks" step only appears when an upgrade or trial link is actually available
  • Tweak: The Pro trial promotion card now waits until the getting-started checklist is completed or dismissed, so fresh installs see the value of the plugin first and the upsell after
  • New: A "Did you know?" card on the dashboard surfaces a different Pixel Manager feature on every visit, each with a direct link to try it or read more; features you already use are skipped, and Pro features carry a small Pro label with a trial link on the free tier

= 1.61.1 = 02.07.2026

  • Fix: Products that entered the cart server-side, for example through funnel builders such as CartFlows, a persistent cart restored on login, or a coupon that automatically adds a free product, were invisible to the browser events, so the begin checkout, add shipping info, and add payment info events could report an empty cart with a value of 0; the Pixel Manager now notices these changes through the WooCommerce cart hash and re-syncs its tracked cart from the store
  • Fix: When the tracked cart is empty at the moment a checkout event fires, the Google Analytics and TikTok events no longer claim a value of 0 with an empty product list; like the Meta pixel, they now send the event without the commerce fields, so the funnel step is still counted without skewing your revenue and item reports with false zeros
  • Tweak: Event parameters that are unavailable, such as the currency on pages without a shop context, are now cleanly omitted from all pixel payloads instead of aborting the event or reaching the pixel as an invalid empty value

= 1.61.0 = 29.06.2026

  • New: Added Microsoft Clarity as a new tracking pixel (Pro, beta), loading the Clarity tag for heatmaps and session recordings and sending add to cart, begin checkout, and purchase events so you can analyze the full shopping experience; just enter your Clarity project ID
  • Tweak: When you enable the Google Tag Gateway but your site is not served through a Cloudflare edge, the Pixel Manager now warns you once that the gateway is handled by your own server and adds load, so you can move it behind Cloudflare, keep it as-is, or turn it off
  • Tweak: The confirmation that appears when you turn on a consent gate (Explicit Consent Mode, or Google TCF support) now offers only "Enable anyway" or "Cancel" and can no longer be closed by clicking beside it, pressing Escape, or a close icon, so this consequential choice is not dismissed by accident
  • Tweak: Added a pmw_product_price_for_datalayer filter to override the per-product price used in the browser events
  • Tweak: WooCommerce Product Bundles and Composite Products are now counted once at their full bundle price in purchase and cart events, instead of listing the bundle container alongside each of its child products
  • Tweak: The first time you turn on server-side tracking by adding a Conversions API token, the Pixel Manager now lets you know it adds load to your server and offers to route it through SweetCode Cloud, keep it on your server, or turn it back off
  • Tweak: Added a pmw_conversion_adjustments_feed_row filter that lets developers exclude or modify individual rows of the Google Ads conversion adjustments feed, for example to drop orders that did not originate from a Google Ads click such as marketplace imports (Amazon, eBay); the plugin re-applies its own validation afterwards so the feed stays within Google's spec
  • Tweak: The server-side Google Analytics payload passed to the pmw_server_event_payload_google_analytics filters now exposes events as an array of event objects ($payload['events'][0]['params']) instead of a single event object, to match the Measurement Protocol format; update any custom callbacks that read the event parameters accordingly
  • Fix: After you changed your Google tag or conversion ID, the old ID could keep being used for up to an hour because the cached tag ID was not cleared when you saved your settings; the cache is now cleared on save, so the new ID takes effect immediately
  • Fix: When Google Consent Mode was enabled without a cookie banner, Google Analytics and Google Ads could stop receiving data because the consent signal was applied a moment too late; the Pixel Manager now sets it before the Google tag loads, so your data flows in again
  • Fix: WooCommerce Product Bundles and Composite Products that are priced per item reported a price of 0 in the add to cart and view item events; the Pixel Manager now reports the real bundle price
  • Fix: Server-side Google Analytics 4 purchase and refund events were sent with the event wrapped as a single object instead of the array that Google's Measurement Protocol expects; they are now sent in the correct array format so Google Analytics records them reliably

= 1.60.0 = 23.06.2026

  • New: Added a "Request a tracking pixel" link to the Tracking Pixels page so you can suggest a tracking pixel you would like us to add

  • New: Added OpenAI as a new tracking pixel (Pro), with browser-side conversion tracking, a server-side Conversions API connection, and Advanced Matching for improved event matching; you only need to enter your OpenAI pixel ID and, for server-side tracking, a Conversions API token. Purchase conversions are sent server-side either way: routed through SweetCode Cloud when it is active, and sent directly to OpenAI from your store otherwise

  • Tweak: The Tracking Pixels page now separates active and inactive pixels with a labelled divider, so it is clear at a glance which pixels are currently tracking

  • Tweak: Turning on a consent gate (Explicit Consent Mode, or Google TCF support) now asks for confirmation first, because these settings stop all pixels from firing until your consent management platform grants consent

  • Tweak: Updated the development dependencies and vendor libraries to current releases; development tooling only, with no changes to the shipped plugin

  • Fix: Server-side conversion events triggered by a click that immediately navigates away from the page, such as begin_checkout, could occasionally be dropped; these events are now sent before the page unloads so they arrive reliably

  • Fix: Orders paid more than three days after they were created could appear in GA4 dated three days too early; GA4 Measurement Protocol events are no longer backdated beyond Google's 72-hour limit, so these conversions are recorded on the correct date

= 1.59.4 = 19.06.2026

  • Fix: The Opportunities tab could show a count in its badge while displaying no opportunity cards on sites running a non-English language; the opportunity impact level is now a stable internal value, so cards always render regardless of the active site language

= 1.59.3 = 17.06.2026

  • Tweak: Updated the development dependencies to current patched releases; development tooling only, with no changes to the shipped plugin

  • Fix: Fixed the AddToCart event not firing for variable products rendered outside a native product page, such as through the [product_page] shortcode or a page builder's single-product widget; the selected variation is now detected from the add-to-cart form

  • Fix: WooCommerce.com distribution: the upgrade, account, and support links in the admin interface now point to WooCommerce.com

  • Fix: WooCommerce.com distribution: fixed the paid version showing the Pro tracking pixels as locked instead of unlocked

  • Fix: GA4 refund events sent via the Measurement Protocol now include the value and currency parameters (the original order total for full refunds, the refunded amount for partial refunds), so GA4 reliably deducts the refunded revenue instead of leaving the refund amount at 0

  • Fix: GA4 partial refund events now report the refunded item price and quantity as positive numbers, matching the values Google's refund specification expects

= 1.59.2 = 16.06.2026

  • Tweak: Made the Nova admin UI clearly distinguish Pro from free features on unlicensed sites: Pro tracking pixels now group under a locked "Pixel Manager Pro" section instead of showing a misleading "active" badge, the Dashboard "Active pixels" count includes only pixels that are actually tracking, and locked fields explain whether a saved value is inactive without a Pro license or is a Pro-only feature
  • Tweak: Surfaced the 14-day free trial next to the in-app "Upgrade to Pro" links and the locked Tracking Pixels group, shown only when a trial can actually be started
  • Tweak: Removed the deprecated Meta Microdata output feature and its leftover setting, which no longer emitted any tracking code

= 1.59.1 = 15.06.2026

  • Tweak: Internal code quality improvements; no functional changes since 1.59.0

= 1.59.0 = 15.06.2026

  • New: Added Nova, a rebuilt Pixel Manager admin interface that is faster and cleaner and is now the default on new installs; existing sites keep the Classic UI and can switch to Nova in one click
  • New: Added support for the FAZ Cookie Manager Consent Management Platform
  • New: Added a getting-started checklist to the dashboard for new installs (set up the first pixel, review consent and general settings, verify tracking on the Diagnostics page, and meet Pixie, the AI assistant) with saved progress and the option to hide it
  • New: Expanded the Abilities API with a machine-readable settings catalog so AI agents can discover, read, and safely update Pixel Manager settings (pmw/get-settings-schema, pmw/get-settings, pmw/get-setup-status, pmw/update-settings, pmw/configure-pixel); writes are validated sparse patches that redact secret tokens, back up settings on every save, and can be disabled with the pmw_abilities_allow_write filter
  • New: Added a SweetCode Cloud destination health check that validates each destination's credentials on every configuration sync and warns in the admin when a token or pixel ID is rejected, while correctly configured destinations keep tracking
  • Tweak: Routed GA4 Measurement Protocol purchase and refund events through SweetCode Cloud when both are active, sending all server-side conversions in a single request; while the SSP is active these events are delivered exclusively through SweetCode Cloud, so during an SSP outage they are skipped and logged rather than sent directly to Google
  • Tweak: Expanded the SSP configuration sync payload (PMW distribution, license tier, multisite flag, locale, environment type, timezone) and triggered a sync right after a plugin upgrade so SweetCode Cloud always has current plugin context
  • Tweak: Removed the per-event X-PMW-Version, X-PMW-Distro, and X-PMW-Tier headers and custom User-Agent from SSP purchase requests now that the same metadata is sent on configuration sync, reducing per-event bandwidth
  • Tweak: Improved SSP sync token handling: lock the field once set with an explicit "Replace token" button, verify the saved token survives the object cache round-trip, surface the API error code, HTTP status, and request ID with actionable messages, auto-disable SSP with a "Sync token rejected" banner on a 401, and shorten the displayed token
  • Tweak: Added a "Copy Diagnostic Info" button to the SSP admin tab for a paste-ready support snapshot
  • Tweak: Added a per-destination circuit breaker to SweetCode Cloud that pauses forwarding to a destination after repeated credential or permission failures and re-probes it later
  • Fix: Fixed the browser-side TikTok Purchase event firing with empty parameters by reading order value, currency, and line items directly from pmwDataLayer.order
  • Fix: Fixed the TikTok Events API rejecting events with empty optional properties by removing them before sending
  • Fix: Fixed the Reddit Conversions API rejecting events with unusually large quantities or order values by capping them to realistic bounds
  • Fix: Fixed a fatal error that could abort subscription renewal payments when the server-side identifiers order meta was not yet an array
  • Tweak: Removed a delay of up to two seconds on the first page view (while waiting for the Facebook pixel cookie); browser tracking now fires immediately and the Facebook cookie is added to server-side events as soon as it is available
  • Tweak: Bumped up WooCommerce version to 10.7
  • Tweak: Bumped up WordPress version to 7.0
  • Fix: Fixed fatal errors that could occur when an order or variation referenced a product or parent product that no longer exists

= 1.58.11 = 12.05.2026

  • Tweak: Improved code quality and resolved static analysis findings

= 1.58.10 = 12.05.2026

  • Tweak: Tightened Google Consent Mode behavior by defaulting to "denied" in explicit consent mode and mapping personalization_storage to marketing instead of preferences
  • Tweak: Removed the Account and Pricing tabs from the experimental Mantine admin UI in the WooCommerce.com Marketplace distribution where Freemius is not available
  • Tweak: Bucketed the Payment Gateway Accuracy Report against the gateway used to finalize payment instead of the gateway set at order creation, preventing per-gateway percentages above 100% when a gateway (Affirm, wallets, etc.) overwrites the payment method during checkout
  • Tweak: Hardened the public products data layer endpoint with per-IP rate limiting, page ID validation against existing posts, and a shorter one-week cache TTL to bound transient storage growth from unauthenticated requests
  • Tweak: Added pmw_skip_s2s_purchase_event filter to prevent server-side purchase events and Google Ads Conversion Adjustments entries for specific orders, for example marketplace imports
  • Tweak: Fixed empty server-side purchase events for backend-manual orders (pay-for-order, quote, push-cart) by broadening admin-order detection to WooCommerce Order Attribution, capturing browser identifiers on the thank-you page for all S2S pixels, and adding a pmw_is_backend_manual_order filter for custom flows
  • Tweak: Hardened the public server-to-server events endpoint by disabling it when SSP is active with no WC fallback configured, adding per-IP rate limiting, rejecting forged purchase events, and reconciling client-supplied IP and user agent values to prevent impersonation while preserving dual-stack IPv6 detection
  • Tweak: Added optional HTTP Basic Auth and per-IP rate limiting to the Google Ads conversion adjustments CSV feed via the new pmw_google_ads_conversion_adjustments_credentials filter, letting merchants protect recent refund metadata using the Username and Password fields in the Google Ads scheduled bulk-upload UI
  • Tweak: Stamped outgoing SSP purchase event requests with a PixelManager/<version> (<distro>; <tier>) User-Agent and matching X-PMW-Version, X-PMW-Distro, and X-PMW-Tier headers so SweetCode Cloud can correlate destination rejections to the exact plugin build
  • Tweak: Forwarded the SSP session ID on server-to-server purchase requests so SweetCode Cloud can bridge the customer's real client IP into Facebook CAPI events on shops where the WordPress server cannot resolve a public IP behind a proxy chain
  • Tweak: Persisted the SSP session ID to order meta during identifier capture so the matching browser visit can be correlated with the server-side purchase event even when the WooCommerce session is no longer available
  • Tweak: Added a structured diagnostic log line when a server-side purchase event resolves no client IP, classifying the failure cause (no IP-bearing headers reached PHP, only a private or loopback address arrived, WooCommerce had no IP recorded on the order, server-side request context, payment method) without logging any raw IP or user agent values
  • Fix: Hardened inline product data layer JSON encoding against script-tag injection by switching to hex-encoded HTML special characters
  • Fix: Removed incorrect "Pro Feature" label from CMP automatic support rows in Consent Management settings, since CMP integrations (Complianz, Cookiebot, Cookie Notice, Cookie Script, Moove GDPR, CookieYes, Termly) are available in the free version
  • Fix: Fixed iubenda CMP integration using deny-by-default fallbacks for absent purposes, matching the correct consent cookie, and mapping purpose 3 (Experience) to preferences
  • Fix: Fixed external Google Consent Mode update handler incorrectly granting preferences when only personalization_storage was present
  • Fix: Fixed opportunity cards not displaying when an admin notice hider plugin is active, by removing WordPress notice classes from the card markup
  • Fix: Fixed profit margin calculation producing incorrect marketing order values when WooCommerce native Cost of Goods Sold is active and order items have quantity greater than one, caused by double-counting the COGS quantity
  • Fix: Fixed JS chunks failing to load when a premium license was deactivated while the premium plugin files remained installed, which broke consent loading and silently disabled tracking
  • Fix: Hardened the frontend initialization so a failed consent module load no longer aborts all subsequent tracking setup, with consent defaulting to denied on failure to preserve privacy
  • Fix: Fixed Reddit CAPI rejecting events with "invalid value" errors on itemCount and product id by coercing item counts to integers for stores selling by weight or length, and product IDs to strings as required by the Reddit Conversions API v3 schema
  • Fix: Fixed Snapchat CAPI purchase events failing with "Request parsing failed" when an order spanned products with overlapping categories or brands, by re-indexing the deduplicated category and brand arrays so they serialize as JSON arrays instead of objects

= 1.58.9 = 14.04.2026

  • Tweak: Added pmw_ prefix to all generated event IDs for easier debugging and source identification
  • Tweak: Added pmw_ prefix to purchase event IDs across all server-side conversion API integrations for consistent event identification
  • Tweak: Removed client IP geolocation via external services and AJAX session storage for non-SSP setups, relying on WooCommerce native IP capture instead
  • Fix: Fixed a PHP 8+ fatal error caused by calling count() on a null value in the Meta CAPI identifier collection
  • Fix: Fixed Termly CMP integration ignoring actual visitor consent choices and always granting full consent due to a hardcoded event payload

= 1.58.8 = 09.08.2026

  • Tweak: Added diagnostic consent decision logging that explains why consent categories were set to their values when the logger is active, including mode, CMP source, and region check details
  • Tweak: Eliminated the REST API preflight test request by using optimistic-try with AJAX fallback, saving one HTTP round-trip per browser session
  • Fix: Fixed WooCommerce HPOS compatibility not being declared for inactive remnant PMW plugin folders, causing false "incompatible" warnings on the plugins page
  • Tweak: Added diagnostic logging for tracking cookie capture across the S2S identifier chain to investigate missing cookies in some purchase events

= 1.58.7 = 31.03.2026

  • Tweak: Improved Google Tag Gateway handler detection by replacing server-side self-probing with browser-based detection and cookie feedback, preventing PHP-FPM pool saturation on high-traffic sites
  • Tweak: Updated vendor packages
  • Tweak: Skipped client IP geolocation and server session storage when SSP is active, since the SSP worker already injects the real client IP, eliminating one external API call and one AJAX round-trip per session
  • Tweak: Skipped transient session identifiers AJAX call when SSP is active, since click IDs are captured from cookies at checkout time, eliminating one AJAX round-trip per cart/checkout page load

= 1.58.6 = 26.03.2026

  • Tweak: Improved admin user interface

= 1.58.5 = 24.03.2026

  • Tweak: Updated PHPCS tooling (WPCS 3.3.0, woocommerce-sniffs 1.0.1) and resolved all coding standards violations
  • Tweak: Added support for Google Ads conversion ID format (AW-) as a valid GA4 measurement ID
  • Tweak: Improved tracking accuracy analysis performance and reliability
  • Tweak: Added event-driven tracking accuracy table where per-order real-time writes replace the nightly batch analysis, with automatic 3-month backfill and graceful fallback to transients during transition
  • Tweak: Added comprehensive Action Scheduler cleanup on plugin deactivation, preventing orphaned pending tasks for tracking accuracy, duplication prevention, HTTP logging, LTV calculation, and SSP sync
  • Tweak: Fixed WP Rocket JS minification and combination breaking webpack chunk loading (ChunkLoadError) by always excluding PMW scripts from WP Rocket's minify and combine features, independent of compatibility mode
  • Tweak: Removed Maximum Compatibility Mode setting, since JS optimization exclusions (minify, combine, delay JS on critical pages) are now automatic for all supported performance plugins
  • Tweak: Redesigned LTV recalculation for large shops with in-memory batch processing, time/memory safety valves, early termination, loop-safe continuation, and resilient retry counters that survive rescheduling
  • Tweak: Renamed TikTok purchase event from CompletePayment to Purchase
  • Tweak: Renamed SSP verification key to domain token across data layer and sync API for clearer naming
  • Fix: Fixed Google Tag Gateway proxy returning 400 errors on some shops due to overly aggressive path sanitization
  • Fix: Fixed Google Tag Gateway proxy generating malformed conversion tracking URLs on some shops due to double-rewriting CCM paths

= 1.58.4 = 16.03.2026

  • Tweak: Fixed Google Tag Gateway proxy causing Apache AH00124 internal redirect loops on some hosting configurations by following Google FPS redirects server-side and using absolute URLs in Location headers to prevent Apache from misinterpreting relative paths as internal redirects
  • Tweak: Improved Facebook CAPI purchase events to always include client_ip_address, even when advanced matching is disabled
  • Tweak: Switched client IP detection from IPv6-only endpoint testing to dual-stack only, eliminating ERR_NAME_NOT_RESOLVED console errors for IPv4-only users while preserving IPv6 detection via browser happy eyeballs (RFC 8305)
  • Tweak: Changed IP service detection to race all configured services concurrently instead of only the first three, improving speed and reliability
  • Fix: Fixed S2S purchase events sending server-side user agent and IP address (e.g. "WordPress/6.x" UA and payment gateway IP) instead of the real customer's browser data for orders placed via express checkout (Apple Pay, Google Pay, Stripe Link) by adding Store API checkout hook and server-side context detection with WooCommerce order data fallback for both user agent and IP
  • Fix: Fixed SSP daily sync flooding on stores where Action Scheduler actions are externally deleted by ensuring the recurring cron always schedules for the next future 3:15 AM, preventing immediate re-execution on every heartbeat
  • Fix: Fixed Reddit CAPI session identifiers never being captured by adding missing set_identifiers_on_session() call
  • Fix: Fixed PHP 8.5 deprecation warnings in the standalone Google Tag Gateway proxy breaking GA4 tracking by replacing deprecated $http_response_header with http_get_last_response_headers() (PHP 8.4+) with backward-compatible fallback, and conditionally skipping no-op curl_close() on PHP 8.0+

= 1.58.3 = 10.03.2026

  • Fix: Fixed SSP config sync backlog purge not clearing all stale Action Scheduler actions by replacing per-action cancel with nuclear unschedule-all and re-register approach

= 1.58.2 = 10.03.2026

  • Tweak: Improved WP Rocket's Delay JavaScript breaking purchase tracking when PMW lazy loading is active by excluding all PMW scripts from WP Rocket optimization instead of only the lazy loader
  • Tweak: Added SSP sync source tracking so each sync now logs where it was initiated (settings change, daily cron, manual, SSP callback) for easier debugging
  • Fix: Fixed SSP config sync flooding caused by Action Scheduler backlog by adding deduplication, 60-second cooldown, and self-healing purge of stale queued actions (both legacy daily_sync and settings_changed hooks)

= 1.58.1 = 10.03.2026

  • New: Added support for WooCommerce's built-in Cost of Goods Sold feature for profit margin calculations (available since WooCommerce 9.5)
  • Tweak: Improved COGS retrieval to only check active sources, preventing stale data from deactivated plugins
  • Tweak: Added tiered activation retry for SSP that retries every 10 min for 2 hours, then every 2 hours for a week, then daily until active
  • Tweak: Removed unused User_Agent class (dead code cleanup)
  • Tweak: Added client-side blocklist for known proxy origins (Google Translate, Google Cache) to silently drop SSP events that would be rejected due to origin mismatch
  • Fix: Fixed S2S purchase events sending server-side user agent and IP instead of the real customer's browser data when triggered from webhook, cron, or IPN contexts
  • Fix: Fixed Reddit CAPI overwriting the customer's real IP address with the webhook request IP in purchase events

= 1.58.0 = 02.03.2026

  • New: Added multi-domain SSP support via pmw_ssp_additional_domains filter for WordPress installs serving multiple domains without multisite
  • New: Added unified IP exclusion filter (pmw_ip_exclusion_list) to block specific IPs and CIDR ranges from all tracking, including browser pixels, browser-initiated S2S, server-side purchase events, and SSP proxy
  • New: Declared compatibility with WooCommerce Product Instance Caching (experimental feature in WooCommerce 10.5+)
  • Tweak: Added support for suppressed Google Ads and GA4 tags in the Google Tag Gateway Proxy
  • Tweak: Improved S2S payload accuracy for Facebook, TikTok, Pinterest, and Reddit adapters
  • New: Added SSP sync token domain validation to prevent token reuse across different shops
  • New: Added SSP disconnect notification to clean up server-side callback data
  • Fix: Fixed SSP daily sync not running while DNS routing or config status were still pending, preventing SSP from becoming active after initial setup
  • Tweak: Removed the "Skip server-side events with no destination platforms" setting, since empty events are now always skipped
  • Fix: Fixed Pinterest search event using wrong field name for Conversions API

= 1.57.0 = 24.02.2026

  • New: Added SSP Purchase Proxy to offload purchase conversion events (S2S) through the SweetCode Cloud proxy
  • New: Added "Always Send Server-Side Events" setting to keep sending S2S events even when browser-side pixels are blocked
  • New: Implemented account created event tracking
  • New: Added Abilities API integration
  • Tweak: Implement cross-tab session synchronization for improved data consistency
  • Tweak: Added option to skip empty server-side events to reduce unnecessary S2S traffic
  • Tweak: Added modern styling and impact indicators to opportunity cards
  • Tweak: Bumped up WC version compatibility to 10.5
  • Tweak: Enhanced GTG Proxy: Improved config resilience, reduced unnecessary health check requests, and added periodic config refresh
  • Tweak: Implemented REST API for saving settings via AJAX; refactored admin tabs and enhance section rendering
  • Tweak: Update styles for impact badges and add Google Automated Discounts and Customer Reviews opportunities
  • Tweak: Improved consent revocation handling: S2S pixels now respect real-time consent status changes without requiring a page reload
  • Fix: Resolved an issue where page_view events were sent server-to-server even when the "Track PageView events server-to-server" setting was disabled.
  • Fix: Fixed duplicate page_view S2S events being sent when consent was granted via the Consent API

= 1.56.0 = 02.02.2026

  • New: CrazyEgg pixel
  • Tweak: Google Tag Gateway Proxy: Improved handling of config file

= 1.55.1 = 29.01.2026

  • Fix: Fixed the bug which did not save the dismissed button click in the database for the trial notification

= 1.55.0 = 26.01.2026

  • Tweak: Updated the license expiration warning message
  • Tweak: Activated an opportunity notification for the Google Tag Gateway Proxy feature
  • Tweak: Updated pixel registry adapter capabilities for consistency with the decentralized architecture
  • Tweak: Added filter to control output of cart item data inline script for theme compatibility
  • Tweak: Refactored the internal event handling system for better maintainability
  • Tweak: Large refactor which renamed wpm to pmw
  • Tweak: Enhanced event handling for product variations and improve conditional triggers
  • Tweak: Enhanced active opportunities notification with impact level breakdown and improved styling
  • Tweak: Revamped rating notice UI and logic for better user experience
  • Tweak: Enhanced opportunities header with statistics and dismissal tracking
  • Tweak: Added backup section styles and improve table row highlighting
  • Tweak: Updated documentation links to use the new path structure
  • Tweak: Added Cookie Confirm CMP integration
  • Tweak: Added support for Beautiful and Responsive Cookie Consent plugin
  • Tweak: Updated script behavior for tracking on specific pages when Flying Press is active
  • Tweak: Enhanced race condition protection when renaming temporary config file in GTG_Proxy
  • Tweak: Improved proxy URL handling based on GTG handler type in Pixel Manager
  • Tweak: Updated GTG handler detection logic to rely on session cache and remove unnecessary server-side checks
  • Tweak: Updated GTG proxy config cache handling on activation and improve config file management
  • Fix: Add back view_cart event listener
  • Fix: Prevent division by zero for free orders in order value calculation

= 1.54.1 = 15.12.2025

  • Tweak: Updated Reddit tracking_type values to UPPER_SNAKE_CASE for CAPI v3 compliance
  • Tweak: Added a missing check for Contentsquare

= 1.54.0 = 15.12.2025

  • New: Added the Adroll pixel
  • New: Added the Outbrain pixel
  • New: Added the Contentsquare pixel
  • Tweak: Added TikTok Events API opportunity class with availability and card data methods
  • Tweak: Added scroll event to interaction triggers for script loading
  • Tweak: Enhanced LinkedIn event adaptation: added conversion types and values for various events
  • Tweak: Admin UX improvements in the settings page.
  • Tweak: Refactored opportunity card output: sort by impact level and streamline dismissed opportunities
  • Tweak: Enhanced client IP address handling
  • Tweak: Added external object cache detection and enhanced debug info output
  • Tweak: Enhanced transient handling: add verification for transient storage to improve reliability with external object caches

= 1.53.0 = 09.12.2025

  • New: Implement Google Tag Gateway Proxy for proxying requests to Google's First-Party Servers
  • Tweak: Added support for loading deprecated functions with user toggle in settings
  • Tweak: Simplified documentation link retrieval by removing unnecessary parameters
  • Tweak: Added notification badges
  • Tweak: Enhanced Facebook Pixel script loading and user data caching
  • Tweak: Added multiple enhancement opportunity notifications for various settings
  • Tweak: Added crossDomain option to AJAX requests
  • Tweak: Replaced jQuery.ajax with native script loading for improved performance and error handling
  • Tweak: Removed unused code and files

= 1.52.1 = 03.12.2025

  • Tweak: Added new documenation links.
  • Tweak: Updated the GA4 tag ID format.
  • Tweak: Updated Google tag ID suppression logic in functions.js
  • Tweak: Implemented public front-end API for third-party integrations with event dispatching and consent context Fix: Fixed server-to-server event processing as not all classes were properly loaded.

= 1.52.0 = 01.12.2025

  • New: Added Reddit Conversions API support and enhance event handling for S2S events.
  • Tweak: Removed direct support for processing anonymous hits in Facebook, Pinterest, TikTok, and Snapchat APIs. This can now be achieved with the new event filtering system.
  • Tweak: Removed several unused files and folders.
  • Tweak: Bumped up WP version compatibility to 6.9
  • Tweak: Filter out non-existent or unpublished products from transient data
  • Tweak: Refactored pixel file structure to unify server-side and browser-side handling, implementing a centralized pixel registry for improved management and automatic detection of active pixels.
  • Tweak: Added validations for some input data.

= 1.51.1 = 27.11.2025

  • Fix: Fixed chunk loading compatibility with script optimization plugins (that combine JavaScript) by setting the .js public path dynamically (with an absolute instead of a relative path).
  • Fix: Disabled the Composer APCU optimization since it caused loading issues on a small subset of servers.

= 1.51.0 = 25.11.2025

  • New: Event filtering system.
  • Tweak: Added error handling in the queue runner.
  • Tweak: Added null and undefined check in visitor permission logic.
  • Tweak: Updated the documentation links.
  • Tweak: Bumped up Facebook CAPI API version to v24.0.
  • Fix: Fixed chunk loading compatibility with script optimization plugins (SiteGround Optimizer, Autoptimize, WP Rocket, etc.) by implementing webpack runtime publicPath configuration.

= 1.50.1 = Release date - 19.11.2025

  • Fix: Fixed undefined check for visitorAllowed cache.

= 1.50.0 = 16.11.2025

  • New: Split the tracking library into chunks to only load the necessary code for the active pixels and features.
  • Tweak: Switched bot detection from IP based to user-agent based for better accuracy, flexibility, and much smaller file size.
  • Tweak: Added support in the pmw_google_ads_conversion_identifiers filter for multiple labels for the same Google Ads conversion ID.
  • Tweak: Updated vendor packages.
  • Tweak: Added filter to take over control of the Reddit tracking pixel in case the Reddit pixel is active in the Pixel Manager and the official Reddit for WooCommerce plugin is also active.

= 1.49.3 = 06.11.2025

  • Tweak: Replaced Cody widget with Chatbase widget.
  • Tweak: Added chatbot widget with side panel.
  • Fix: Fixed product ID validation and filtered unpublished products in get_products_for_datalayer_by_product_ids. (CVE-2025-12545)

= 1.49.2 = 07.10.2025

  • Tweak: Updated the VWO tracking script to version 2.1.
  • Tweak: Renamed Twitter to X (Twitter) in the settings.
  • Tweak: Expanded consent mode regions by adding entries for 11 additional U.S. states.
  • Tweak: Updated the add-to-cart URL parameter handling to include an optional quantity parameter.
  • Tweak: Added payment type details to Google Analytics events.
  • Tweak: Refactored order item price handling for Google Ads cart items to always exclude tax.
  • Tweak: Automatically detect disabled Google tags after combining Google tags and prevent running a config command for them.
  • Tweak: Updated vendor packages.
  • Tweak: Refactored gateway analysis calculations for improved clarity and accuracy.
  • Tweak: Bumped up WC version compatibility to 10.2
  • Fix: Moved the GLA activation filter to the init hook. It prevented other Pixel Manager filters from being applied.

= 1.49.1 = 18.06.2025

  • Tweak: Updated plugin URI to SweetCode site.
  • Tweak: Removed the deprecated Facebook Microdata output.
  • Tweak: Automatic options backup on plugin upgrades.
  • Fix: Fixed edge-case XSS vulnerabilities related to unquoted product ID injection in post-editing scenarios. Exploitation required specific conditions and permissions.
  • Fix: Fixed the "Show recent log file" link in the logs tab.

= 1.49.0 = 10.06.2025

  • New: Added support to send PageView events through the s2s protocol for pixels that support it.
  • New: Added a new queue runner _pmwq for developers who want to run Pixel Manager functions, no matter when the Pixel Manager is loaded.
  • New: Added a new automatic settings backup feature.
  • Tweak: Renamed ACR cookie for consistency.
  • Tweak: Refactored REST route permission callbacks.
  • Tweak: Added a script attribute to disable autoblocking of the PMW when the Usercentrics CMP is active.
  • Tweak: Improved GA4 page load time tracking logic and added new performance metrics.
  • Tweak: Updated Wistia embed script and styling for better integration.
  • Tweak: Various admin UX improvements.
  • Tweak: Added a health check for the Google Tag Gateway.
  • Tweak: Removed some unused code.
  • Tweak: Added method to convert LTV order values to base currency when the shop uses specific multi-currency plugins.
  • Tweak: Improved payment gateway retrieval logic.
  • Tweak: Bumped up WC version compatibility to 9.9

= 1.48.0 = 22.05.2025

  • New: Support for Google tag gateway for advertisers.
  • Tweak: Improved processing ot the GA4 data API credentials.
  • Tweak: Updated the GA4 session ID extraction to the new GS2 format.
  • Tweak: Many code improvements to reduce Plugin Check warnings and errors.
  • Tweak: Bumped up WP version compatibility to 6.8
  • Tweak: Bumped up WC version compatibility to 9.8
  • Tweak: Added filter to declare WP Consent API compatibility.
  • Tweak: Removed some cruft.
  • Tweak: Added console log for Meta (Facebook) custom event tracking.
  • Tweak: Updated vendor packages.
  • Tweak: Optimized the show_variation event listener to prevent issues on small subset of themes.
  • Tweak: Added optional fallback URL for the script loader.
  • Tweak: Optimized filter loading.
  • Tweak: Optimized the event script for Google shortcodes.
  • Tweak: Improved the cache purge logic to also purge transients that cache certain options.
  • Fix: Fixed a small UX display bug that, in rare cases, would show the pro version demo mode button even if the pro version is active.
  • Fix: Allow shorter Reddit pixel IDs.
  • Fix: Removed a possible recursion to prevent a memory overallocation error in some edge cases in class-opportunties.php.
  • Fix: Fixed the facebook_for_woocommerce_integration_pixel_enabled filter.

= 1.47.1 = 17.04.2025

  • New: Released the free version of the plugin on the woocommerce.org marketplace.

= 1.47.0 = 31.03.2025

  • New: Microsoft Ads Consent Mode support
  • Tweak: Added video documentation for the GA4 data API setup.
  • Tweak: Cast permission callback return values to prevent semgrep warnings.
  • Tweak: Added a feature to show the PMW pro features demo in the wp.org playground.
  • Tweak: Removed some cruft.
  • Tweak: Added new pmw_options filter that allows to filter the options array before it is used.
  • Tweak: Added order extra details output that helps with debugging.
  • Tweak: Improved the loading logic to prevent fatal errors if several versions of the plugin are activated at the same time.
  • Tweak: Numerous code syntax improvements.
  • Tweak: Improved variation name output for GA4.
  • Tweak: Added support fo the new WooCommerce internal brand feature.
  • Tweak: Improved the update_cart event listener. Fix: Improved the data object when retrieving GA4 attribution data to prevent an invalid argument warning.

= 1.46.1 = 27.01.2025

  • Tweak: Cast permission_callback input variable into bool.
  • Tweak: Workaround for a rare Google tracking ID URL bug.
  • Tweak: Added a safeguard to prevent a fatal error in some edge cases when third-party code changes the data output from a string to an array in prepare_custom_rest_handlers.
  • Tweak: Bumped up WC version compatibility to 9.6

= 1.46.0 = 09.01.2025

  • New: Added support for the Cookiefirst CMP.
  • Tweak: Added safeguard to get_payment_gateways method to prevent a fatal error in some edge cases when a payment gateway is not following the WooCommerce standard.
  • Tweak: Added data collection placeholder for gateway analysis when the analysis is run when no orders have been processed through the Pixel Manager yet.
  • Tweak: Bumped up WC version compatibility to 9.5
  • Tweak: Bumped up WP version compatibility to 6.7
  • Tweak: Switched gtag.js ID priority from GA4 to Google Ads, as GA4 in rare cases is buggy and returns a 404.
  • Tweak: Prevent double logging of payment method change.
  • Tweak: Reactivated the AI support chat bot.

= 1.45.0 = 29.10.2024

  • New: Added support for the Meta domain verification ID.
  • Tweak: Allow shop managers to access the settings page.
  • Tweak: Updated vendor packages.

= 1.44.2 = 03.10.2024

  • Tweak: Fixed event_time fallback in Facebook CAPI.
  • Tweak: Reenabled the new variations selection logic, added some safeguards and only activate it in case the PMW is lazy loaded.
  • Tweak: Added support for GA4 add_payment_info and add_shipping_info events for WooCommerce Blocks.
  • Tweak: Updated vendor packages.
  • Tweak: Handle missing product IDs in data layer on view-item events more gracefully.
  • Tweak: Updated a documentation link.
  • Fix: Fixed a cookie check for TikTok EAPI events.
  • Fix: Fixed a wrong status output in the advanced Google settings for the enhanced e-commmerce event output.

= 1.44.1 = 11.09.2024

  • Fix: Temporary roll back to old variations selection logic to prevent issues with some themes.

= 1.44.0 = 05.09.2024

  • New: Filters to add custom parameters for Google Analytics orders and order items.
  • Tweak: Abort subscription renewal hits if the parent order is not found.
  • Tweak: Bumped up Facebook API version to v20.0
  • Tweak: Bumped up WP version compatibility to 6.6
  • Tweak: Updated vendor packages.
  • Tweak: Update the translation file.
  • Tweak: Improved the logic to detect a preselected variation on the product page on page load, especially with Lazy Loading enabled.
  • Tweak: Added safeguards to prevent warnings when generating the payment gateway accuracy report for the UX.
  • Fix: Fixed a documentation link.

= 1.43.5 = 16.07.2024

  • Tweak: Added support for custom variables for Google Ads purchase events.
  • Tweak: Updated vendor packages.
  • Tweak: Improved logic to detect orders overview page and order edit pages.
  • Tweak: Renamed the pmw_custom_cogs_meta_key filter to pmw_custom_cogs_product_meta_key.
  • Fix: Fixed division by zero bug in class-shop that happened in some edge cases.

= 1.43.4 = 26.06.2024

  • Tweak: Added filters to adjust the output of the order value for statistics.
  • Tweak: Few improvements in the admin scripts to avoid unnecessary console errors.
  • Tweak: Bumped up WC version compatibility to 9.0
  • Fix: Removed the experimental Polyfill.io feature as the service has been compromised. (This feature was not active by default and had to be enabled manually by enabling an experimental filter.)

= 1.43.3 = 18.06.2024

  • Tweak: Added product information to the Reddit events.
  • Tweak: Updated the purchase event fields for the Reddit pixel.
  • Tweak: Ensured get_transient_identifiers() returns an array.
  • Tweak: Added a few semicolons into the JavaScript inline code output to bolster the code against subpar JavaScript "optimizers" that otherwise may break the code.
  • Tweak: Added filters for Google Site Kit. If Google Ads and/or GA4 are enabled in the Pixel Manager, it will prevent Google Site Kit from adding its own tracking code.
  • Fix: Fixed the compressed JavaScript files in the woocommerce.com distribution that got corrupted during the build process after updating a component of the build process.
  • Fix: Moved some GA4 JavaScript library functions from the premium to the free version, as they are called in the free version as well.
  • Fix: Added a safeguard to prevent a fatal error in case a parent product can't be loaded.
  • Fix: Fixed a bug when consent was changed in a Termly CMP.

= 1.43.2 = 05.06.2024

  • Tweak: Added caching for transient identifiers.
  • Tweak: Added a safeguard to server side requests to not follow redirects.
  • Tweak: Added add_payment_info event processing for TikTok, Twitter.
  • Tweak: Refactored directory structure.
  • Tweak: Updated Google's IP ranges in ip_services.js
  • Tweak: Added add_shipping_info event processing for GA4.
  • Tweak: Added add_payment_info event processing for GA4, Facebook (Meta).
  • Tweak: Added a safeguard and an error message when trying to upload invalid JSON settings files.
  • Tweak: Added a safeguard to REST API endpoint tester to not follow redirects. Also added a proper check for the response message.
  • Tweak: Removed Partytown Web Worker experiment.
  • Tweak: Added add-to-cart event listener for Doofinder add-to-cart buttons.
  • Fix: Fixed a fata error that would trigger when not using WooCommerce and activating an server-2-server tracking pixel.
  • Fix: Fixed a bug that would prevent consent from being processed immediately after consent was given through Cookiebot (only worked on page reload).

= 1.43.1 = 21.05.2024

  • Fix: Added a safeguard when trying to collect identifiers from a WooCommerce session when no session is active.

= 1.43.0 = 21.05.2024

  • New: Snapchat CAPI support
  • Tweak: Removed non_personalized_ads from GA4 Measurement Protocol events as this has been replaced.
  • Tweak: Refactored all server-to-server tracking classes to be more efficient.
  • Tweak: Added back session_id and engagement_time_msec to GA4 MP purchase events.
  • Tweak: UX improvement for the GA4 Data API settings.
  • Tweak: Improved HTTP request logger.
  • Tweak: Switched to new TikTok EAPI endpoint and implemented new event object structure.
  • Tweak: Added a safeguard into the product container watcher to prevent an undefined error.
  • Tweak: Added a safeguard in case attributes for the console logger are not passed correctly.
  • Tweak: Bumped up WooCommerce version compatibility to 8.9

= 1.42.8 = 06.05.2024

  • Fix: Fixed a bug with a filter for the Facebook for WooCommerce plugin that matches the product ID with the catalog ID.

= 1.42.7 = 05.05.2024

  • Tweak: Added more index.php files to prevent directory listing.
  • Tweak: Added an override for the Facebook for WooCommerce plugin to match the catalog ID with the product ID set in the Pixel Manager for the Facebook pixel.
  • Fix: .br and .gz compressed JavaScript files got corrupted after updating a component of the build process. This update fixes the corrupted files.

= 1.42.6 = 02.05.2024

  • Tweak: Further improved Enhanced Conversions data email formatting for Google addresses.
  • Tweak: For Conversion Adjustments added a safeguard to not send negative adjustment_value in case WooCommerce returns a negative order total. In that case set it to zero.
  • Tweak: Updated Facebook CAPI to use the new API version v19.0
  • Tweak: Improved autoloader.php to better handle premium files.
  • Tweak: Added requests to the GA4 MP debug endpoint while http request logging is active.
  • Tweak: Removed an experiment that should help show purchases in GA4 realtime reports.
  • Tweak: Added a safeguard in case no category array is passed to the $item_details_array for GA4 MP purchase events.
  • Tweak: Refactored various parts of the codebase to streamline the code.
  • Fix: GA4 MP suddenly stopped processing purchase events that are sent with a session_id. This was a documented feature by GA4 to allow purchase events to show in realtime reports. This update removes the session_id from the purchase event to allow GA4 to process the event again.

= 1.42.5 = 25.04.2024

  • Tweak: Improved Enhanced Conversions data strings formatting.
  • Tweak: Improved front-end consent state logging.
  • Tweak: Changed event listeners to be more efficient.
  • Tweak: Refactored various parts of the codebase to streamline the code.
  • Tweak: Updated vendor libraries.
  • Fix: Fixed consent event listener loading for Cookiebot and CookieYes.

= 1.42.4 = 23.04.2024

  • Tweak: Added Enhanced Conversion data to GA4 Measurement Protocol purchase events.
  • Tweak: Enabled Enhanced Conversions also for GA4.
  • Tweak: Added Virginia to the US states for the explicit consent management.
  • Tweak: On first load CookieYes sets the categories with no values, just empty strings. Not "yes" or "no" like in all subsequent loads. This update handles this case.
  • Tweak: Added a backwards compatibility process for website visitors that have saved a consent status before the latest update.
  • Tweak: Streamlined large parts of the codebase.
  • Tweak: Updated vendor libraries.
  • Fix: Fixed a Microsoft Ads purchase event activation bug.
  • Fix: Fixed a bug that would prevent to fire a view_item event on opening variable products with preselected variations.

= 1.42.3 = 16.04.2024

  • Tweak: Better browser geo region detection for the consent mode. This is helpful if a website manager requires explicit consent from visitors located in California.
  • Tweak: Block same page events after consent has been removed for various pixels.
  • Fix: Fixed a text output for CookieYes activation status.

= 1.42.2 = 11.04.2024

  • Fix: Fixed a edge case bug that could prevent the save button in the UX to render.

= 1.42.1 = 10.04.2024

  • Fix: Removed consent update reload triggers for some CMPs, as in some cases the CMPs emit CMP click events on each page load and lead to a reload loop.

= 1.42.0 = 10.04.2024

  • New: Added support for Microsoft Ads Enhanced Conversions.
  • Tweak: Updated all vendor packages.
  • Fix: Fixed a bug when reading the consent cookie of the free version of the Cookie Compliance CMP (by hu-manity.co).
  • Fix: Fixed a bug when reading the consent cookie of the old versions of the CookieYes CMP.
  • Fix: Fixed a bug that would throw an error if the site_id was not set.

= 1.41.1 = 09.04.2024

  • Tweak: Added more logging for the GA4 Measurement Protocol purchase event.
  • Tweak: Extended the auto-off delay for HTTP request log feature.
  • Tweak: Enabled the Google Consent Mode as default.
  • Tweak: Removed Google Analytics Universal codes.
  • Tweak: Refactored internal class names and file structure and the autoload mechanism.
  • Tweak: Removed the author tab from the settings page.
  • Tweak: Refactored the consent regions logic and implemented an automatic API call for better handling of unrestricted regions.
  • Tweak: Added filter to suppress the version info output in the dev console.
  • Tweak: Refactored sections for shop and consent management in the settings page.
  • Tweak: Refactored the entire consent management logic to be more flexible and easier to maintain.
  • Fix: Improved check if VWO is active before trying to fire events.
  • Fix: Fixed pmw_conversion_prevention filter for ACR.
  • Fix: Fixed a bug that could prevent the Google Consent Mode activation.

= 1.41.0 = 21.03.2024

  • New: Added support for VWO (Visual Website Optimizer).
  • Tweak: Added Snapchat user_phone_number parameter.
  • Tweak: Added more logging for the TikTok pixel.
  • Tweak: Added several Snapchat events for tracking: LOGIN, ADD_TO_WISHLIST, START_CHECKOUT, SEARCH
  • Tweak: Added a fallback to add the timestamp for TikTok EAPI purchase event in case it can't retrieve it from the browser.
  • Tweak: Added more page data output to the wpmDataLayer.
  • Tweak: Workaround for the Astra theme show_variation bug that triggers multiples times on page load on the product page.
  • Tweak: Added safeguard if server requests for fetching product data is missing input data.
  • Tweak: Added tweaks if Cookiebot is active. (Exclusions for script auto blocking and their Google Consent Mode)
  • Tweak: Removed Google Optimize as it was decommissioned by Google.
  • Tweak: Added safeguard to not run WooCommerce specific code on non-WooCommerce sites.
  • Tweak: Updated Complianz CMP cookie names.
  • Tweak: Added support for the WP Cookie Consent CMP.
  • Tweak: Bumped up WooCommerce version compatibility to 8.7
  • Tweak: Bumped up WordPress version compatibility to 6.5
  • Tweak: Updated vendor libraries.

= 1.40.1 = 01.03.2024

  • Fix: Fixed a bug that could prevent detecting if the purchase conversions were fired.

= 1.40.0 = 27.02.2024

  • New: Added support for the Google Consent Mode v2 in the free version of the Pixel Manager.
  • Tweak: Refactored a few internal functions.

= 1.39.0 = 19.02.2024

  • New: LinkedIn Ads pixel released
  • Tweak: Added dashboard message for available opportunities.
  • Tweak: Bumped up WooCommerce version compatibility to 8.6
  • Tweak: Updated vendor libraries.
  • Tweak: Removed a few unnecessary parameters.
  • Fix: Fixed a bug that would keep showing the expired license notification even after the message was dismissed.

= 1.38.0 = 12.02.2024

  • New: Taboola pixel released
  • Tweak: Added LTV calculation opportunity to the opportunities tab.
  • Tweak: Added console logging for pixel events across platforms.
  • Tweak: Improved sanitization of settings strings.
  • Tweak: Improved Google Ads conversion ID and conversion label string extraction when saving the settings.
  • Tweak: Added exclusion rule for inline HTML scripts in case the Iubenda CMP is active.

= 1.37.1 = 01.02.2024

  • Tweak: Disabled the automatic LTV recalculation.
  • Tweak: Added a button to stop an active LTV recalculation.
  • Tweak: Added an option to enable or disable the order level LTV calculation.
  • Tweak: Added more debug log output for Meta CAPI subscription events.

= 1.37.0 = 30.01.2024

  • New: Opportunities tab that shows opportunities to improve tracking and marketing performance.
  • Tweak: Added more debug messages for Meta CAPI events.
  • Tweak: Updated the order modal created by the Pixel Manager and added LTV values to it.
  • Tweak: Renamed the setting "order total logic" to "marketing value logic".
  • Tweak: Updated the translation file.
  • Tweak: Added option to disable the automatic lifetime value calculation.
  • Tweak: Added an automatic library version checker that shows an error message in the console if the library version is not matching the currently installed plugin version.
  • Tweak: Added a front-end error log output in case the gtag.js library can't be loaded.
  • Tweak: Added a safeguard for calls to as_has_scheduled_action().
  • Fix: Fixed a bug with the explicit consent management front-end function on non-WooCommerce sites.
  • Fix: Safeguard if lazy loading PMW is enabled on a non-WooCommerce site.

= 1.36.0 = 16.01.2024

  • New: Added GA4 enhanced e-commerce events to the free version.
  • New: Added a new logger tab to the settings page. It allows you to enable logging from within the plugin.
  • Tweak: Improved handling of session and persistent client data.
  • Tweak: Improved handling of saving and using the referrer.
  • Tweak: Implemented a possible fix for the Facebook IPv6 vs IPv4 warning.
  • Tweak: Updated vendor packages.
  • Tweak: Added new logger for better debugging.
  • Tweak: Refactored the tracking value variable into an object with more properties.
  • Tweak: Refactored the order item COG retrieval to get the COG value from the order, if available. Otherwise, it will use the current COG value from the product.
  • Tweak: Optimized shortcode trigger for the Meta pixel.
  • Tweak: Reordered the main subsection tabs.
  • Fix: Fixed the Facebook CAPI event handler for custom events injected through shortcodes.

= 1.35.0 = 19.12.2023

  • New: Enable Google Consent Mode v2.
  • New: Enable for Google TCF support.
  • New: AI support chat bot.
  • Fix: Safeguard for WooCommerce block editors that can cause a fatal error in rare cases.

= 1.34.1 = 14.12.2023

  • Tweak: Improved console logs in functions_premium and event_listeners_premium
  • Tweak: Added the value for the GA4 add_to_cart, remove_from_cart, add_to_wishlist and begin_checkout events.
  • Tweak: Removed user data output for the free version as it is not required.
  • Tweak: Bumped up WordPress version compatibility to 6.4.
  • Tweak: Bumped up WooCommerce version compatibility to 8.4
  • Tweak: Declare Cart and Checkout Blocks compatibility.
  • Tweak: Updated the Facebook pixel ID validation to allow for longer IDs.
  • Tweak: Updated the jQuery ready event detection to avoid deprecation warnings.
  • Fix: Fixed shortcode trigger for Facebook when CAPI is enabled.
  • Fix: Don't call VarnishPurger's execute_purge() statically as it is not a static function.
  • Fix: Added a safeguard to avoid render issues on empty block-activated cart pages.

= 1.34.0 = 10.10.2023

  • New: Added support for WP Consent API.
  • Tweak: Added content IDs to the TikTok PlaceAnOrder event.
  • Tweak: Improved user_id evaluation for the GA4 Measurement Protocol purchase event if the user ID is 0.
  • Tweak: Bumped up the Meta API version to v18.0.
  • Tweak: Added new doc links.
  • Tweak: Bumped up WooCommerce version compatibility to 8.1
  • Tweak: Added more how-to videos.
  • Tweak: Added root: null to the intersection observer options to avoid issues that occur on a small subset of browsers.
  • Tweak: Improve the function to retrieve the productId and quantity on cart content updates.
  • Tweak: Warning if transients are deactivated.
  • Fix: Fixed the timestamp_micros for GA4 Measurement Protocol purchase events.
  • Fix: Fixed the fallback function to retrieve the product ID on product pages that don't use the regular WooCommerce product template.
  • Fix: Added safeguard for pure WP installs and WC is not active.

= 1.33.1 = 13.09.2023

  • Tweak: Added cart properties to TikTok InitiateCheckout event.
  • Tweak: Added an autodetect algorithm for product template elements which help tracking view_item_list events.
  • Tweak: Added a new begin_checkout CSS trigger for FunnelKit.
  • Tweak: Another fallback to retrieve the product ID in case the ID is saved in the value attribute for custom product pages.
  • Tweak: Renamed the internal value for TikTok for the Real Cookie Banner from tiktok to tik-tok-pixel.
  • Tweak: Added a filter to set the maximum orders for calculating the clv.
  • Tweak: Adjusted gtag container ID retrieval order to work around an issue that can happen for GA4 accounts with multiple data streams.
  • Tweak: Updated the Reddit advertiser ID validation to allow for a wider range of IDs.
  • Tweak: Better logging when GA4 data API credentials can't be uploaded.
  • Tweak: Added new video how tos.
  • Fix: Put the license expired warning behind a hook to avoid the headers already sent error on some installs.
  • Fix: Allow empty client_id for GA4 data API credentials.
  • Fix: Fixed the tax price output for additional currencies when WPML Multicurrency is active.
  • Fix: Fixed a bug in the view_item_list template detector for the niche case when detecting a list of one single product.

= 1.33.0 = 09.08.2023

  • New: Added Outbrain Ads pixel support.
  • New: Added Taboola Ads pixel support.
  • Tweak: Updated vendor libraries.
  • Tweak: Removed an unnecessary API call from the free version on the order view page.
  • Tweak: Bumped up WordPress version compatibility to 6.3
  • Tweak: Updated vendor libraries.
  • Tweak: UX improvements.
  • Tweak: Added hooks for third-party tools to print data layer product details.
  • Tweak: Fixes an issue where Elementor widgets would show the PMW scripts as visible outputs under rare conditions.
  • Tweak: Bumped up WooCommerce compatibility to 8.0.
  • Fix: Fixed Litespeed ESI implementation. Now only the Pixel Manager ESI block will be excluded from caching for logged in users (not the entire page). (except the woocommerce.com distribution which requires a patch in WP core)
  • Fix: Put the automatic phone and link click tracking info in the UX behind a premium feature flag as it is only available in the premium version.

= 1.32.5 = 19.07.2023

  • Tweak: Support for the Iubenda CMP.
  • Tweak: Also flush cache on the first option save.
  • Tweak: Added cache purge for Nginx Helper (Nginx or Redis) if the Nginx Helper plugin is active.
  • Tweak: Added cache purge for Nginx Helper.
  • Tweak: Added cache purge for Proxy Cache Purge.
  • Tweak: Bumped up WooCommerce compatibility to 7.9
  • Fix: Fixed a user data retrieval bug when the main administrator views an order confirmation page.
  • Fix: Fixed a PMW Lazy Load activation bug.

= 1.32.4 = 11.07.2023

  • Tweak: Made the pmw:ready event trigger independent of jQuery.
  • Tweak: Added a begin_checkout event trigger for the XT Floating Cart for WooCommerce plugin.
  • Tweak: CookieYes updated their cookie names. This update includes checks for the new cookies.
  • Tweak: Various smaller UX improvements.
  • Tweak: Removed the WC requirement for the wp.org distribution.
  • Fix: Fixed the consent detection for CookieScript when the Google Consent Mode is enabled in CookieScript.

= 1.32.3 = 05.07.2023

  • Tweak: Disabled Google Analytics Universal.
  • Tweak: Updated vendor libraries.
  • Tweak: Several smaller UX improvements.

= 1.32.2 = 30.06.2023

  • New: Support for the Real Cookie Banner by devowl.io
  • Tweak: Update Google Ads Enhanced Conversions to use sha256.
  • Tweak: Refactored saving the order status to optimize compatibility with cached nonces on purchase confirmation pages.
  • Tweak: Added filters that can be used to add more selectors for add-to-cart and begin-checkout buttons.
  • Tweak: Enabled sslverify unless on localhost.
  • Tweak: Updated the Borlabs autoconfiguration to re-enable cookie groups and cookies that should be active.
  • Tweak: Refactored and streamlined input sanitization.
  • Tweak: Added a new pmw_order_fees filter.
  • Tweak: Added more debugging info to the debugging page.

= 1.32.1 = 23.06.2023

  • Tweak: Added a safeguard to prevent fatal errors if the Action Scheduler could not be loaded.
  • Tweak: Safeguard if Lazy Loading is active and the wpmDataLayer was modified by another plugin.
  • Tweak: Added possible solution to prevent Complianz from blocking the Pixel Manager configuration script.
  • Tweak: Bumped up WC version compatibility to 7.8
  • Fix: Updated Reddit advertiser ID validation

= 1.32.0 = 13.06.2023

  • New: Added Pinterest API for Conversions.
  • Tweak: Set Facebook CAPI API version to v17.0.
  • Tweak: Renamed wpm_facebook_capi_api_version filter to pmw_facebook_capi_api_version.
  • Tweak: Added page_location to GA4 MP purchase event hits.
  • Tweak: Added timestamp_micros to GA4 MP purchase event hits in the past.
  • Tweak: Make sure that the GA4 MP session ID is processed as an integer.
  • Tweak: Unified the user data output for the wpmDataLayer.
  • Tweak: New filter to enable Facebook hybrid mobile app events.
  • Tweak: Updated the JavaScript email validation regex.
  • Tweak: Added general filter to disable subscription renewal tracking.
  • Tweak: Added filter to disable Google Analytics subscription renewal tracking.
  • Tweak: Changed the wpm_get_ga_cid_logger filter to pmw_ga_cid_logger.
  • Tweak: Changed the wpm_conversion_value_filter name to pmw_marketing_conversion_value_filter.
  • Tweak: Changed multiple wpm_* filters to pmw_*.
  • Tweak: Numerous syntax improvements.
  • Tweak: Renamed the pmw_cookie_consent_management_loaded event to pmwCookieConsentManagementLoaded
  • Tweak: Added an escape to add_query_arg in the order-columns class.
  • Tweak: Adjusted an escape function in the shortcodes class to use a better suited escape function.
  • Tweak: Updated the vendor libraries.
  • Fix: Fixed a load order issue which would cause a wpm.updateGoogleConsentMode error if called on the pmwCookieConsentManagementLoaded event.

= 1.31.1 = 24.05.2023

  • Tweak: Updated all vendor libraries.
  • Tweak: Optimized the safeguard for the order output on the thankyou page.

= 1.31.0 = 23.05.2023

  • New: Reddit pixel.
  • Tweak: Better handling of options.
  • Tweak: Wrapped the debug info output into a try catch block to avoid errors on a small subset of servers.
  • Tweak: WC 7.7 compatibility.
  • Tweak: Safeguard to avoid a rare fatal error on an in_array() call on a non array.
  • Tweak: Better check if wpmDataLayer is fully loaded. And added an error log if third-party plugins are causing issues loading the data layer.
  • Tweak: Moved the pmw_tracking_accuracy_analysis from WP Cron to the Action Scheduler.
  • Tweak: Updated vendor libraries.
  • Tweak: Updated and optimized shortcode output.
  • Tweak: Automatic setup of Borlabs Cookie settings.
  • Tweak: Better handling of setting strings that contain unwanted characters.
  • Tweak: Simplified settings strings validations.

= 1.30.7 = 04.05.2023

  • Tweak: Updated the cogs meta field filter name.

= 1.30.6 = 04.05.2023

  • New: GA4 page load time tracking.
  • New: Added filter to use custom COGS meta key.
  • Tweak: Made anti flicker a manual option requirement for Lazy Load if Google Optimize is enabled.
  • Tweak: Updated the TikTok tracking code.
  • Tweak: Optimized extraction of the email address on mailto: link clicks.
  • Tweak: More compatible way to check for redirects for the debug info.
  • Tweak: Syntax optimizations.
  • Tweak: Built in safeguards for debug info URL tests.
  • Tweak: Adjusted tel and mailto click events for GA4.
  • Tweak: Use of more compatible way to check if servers are reachable.

= 1.30.5 = 19.04.2023

  • Fix: Use Litespeed ESI exclusion only for logged in users.

= 1.30.4 = 19.04.2023

  • New: Added automatic event tracking for mailto: links for Google Analytics.
  • New: Added support for Termly CMP.
  • Tweak: Litespeed ESI compatibility
  • Tweak: Bumped up WooCommerce compatibility to 7.6.
  • Tweak: Bumped up WP version compatibility to 6.2
  • Tweak: Removed one trigger for the BeginCheckout event as it was too generic and on some themes inflated the number of events.
  • Tweak: Improved product ID detection on add-to-cart events for non standard WooCommerce product types.
  • Tweak: Updated vendor libraries.
  • Tweak: Bumped up the Facebook API version to v16.0.
  • Fix: Fixed variation output for pixel based purchase event order output.

= 1.30.3 = 14.02.2023

  • Tweak: Improved the method to check if ACR should be triggered on unpaid order statuses.
  • Tweak: Deprecated a PWM filter to add paid order statuses and info to use the WooCommerce internal filter instead.
  • Tweak: Improved safety checks for order confirmation page. (Thanks https://github.com/Willianvdv for raising this.)

= 1.30.2 = 26.01.2023

  • Fix: Fixed brotli and gzip compressed JavaScript files.

= 1.30.1 = 26.01.2023

  • Tweak: Updated url_passthrough filter.
  • Tweak: Updated ads_data_redaction filter.
  • Tweak: Removed the GA4 experiment for simultaneous browser and server tracking.
  • Tweak: Added workaround if a WP install plugin or theme loads a very old Composer version that doesn't contain the setApcuPrefix function. (Thanks @johnbillion for the solution)
  • Tweak: Brought back filter to disable the WooCommerce Google Analytics Integration, but only if GA3 and GA4 are both simultaneously enabled in the PMW.

= 1.30.0 = 24.01.2023

  • Tweak: Use wp_date for GA4 data retrieval to match the shop timezone.
  • Tweak: Narrowed down span frame for conversions in conversion adjustments.
  • Tweak: Adjusted conversion adjustments link in admin settings to output a link that also works if pretty permalinks are disabled.
  • Tweak: Created an experiment to send the purchase event to GA4 using the Measurement Protocol and the browser pixel simultaneously. It can be activated using the experimental_pmw_ga4_server_and_browser_tracking filter.
  • Tweak: Workaround for an elusive bug in the consent regions in_array call.
  • Tweak: Updated vendor libraries.
  • Tweak: Further optimized loading composer libraries.
  • Tweak: Added filters to specify the fbevents.js version to be loaded.
  • Tweak: Removed filter to disable the WooCommerce Google Analytics Integration plugin when GA3 is enabled in the Pixel Manager.
  • Fix: Fixed order data transmission for initial subscription orders reports over Meta CAPI.
  • Fix: Updated Conversion Adjustments output to be able to deal with a wider range of timezone values.
  • Fix: Also allow shop managers to see GA4 order attribution data.
  • Fix: Fixed loading wc_hooks.js if defer attribute is used for wp-hooks.

= 1.29.1 = 12.01.2023

  • Tweak: Proper output of optimized composer autoload files.
  • Tweak: Adjusted define() to avoid warnings with old PHP versions.

= 1.29.0 = 12.01.2023

  • New: Added Google Optimize Anti-Flicker Snippet. Either it is enabled through the user in the settings, or automatically enabled if Google Optimize and PMW Lazy Loading are enabled at the same time.
  • Tweak: Improved a tooltip text.
  • Tweak: If PMW Lazy Load is enabled, exclude if from WP Rocket optimization.
  • Tweak: Safeguard if wp-hooks don't get loaded in proper order or not at all.
  • Tweak: Bumped up WC version compatibility to 7.3
  • Tweak: Various code improvements.
  • Tweak: Optimize composer autoload files.
  • Fix: Fixed a type check bug that happened in rare cases for grouped products.

= 1.28.2 = 03.01.2023

  • Fix: Fixed an issue when activating the lazy loading feature of the plugin for the wc.com distribution.

= 1.28.1 = 03.01.2023

  • Fix: Put new experimental opportunities dashboard notification behind a feature flag.

= 1.28.0 = 03.01.2023

  • New: Subscription value multiplier for paid ads conversion values to better match the effective CLV.
  • New: Experimental support for lazy loading the Pixel Manager to improve page speed scores.
  • Tweak: Don't process Facebook subscription cancellations and subscriptions anymore when a subscription changes to on-hold and comes out of it again.
  • Tweak: Added video doc link for Google Enhanced Conversions.
  • Tweak: Updated to the new Twitter pixel.
  • Tweak: Added Snapchat doc link.
  • Tweak: Implemented filter to disable Facebook CAPI subscription renewal tracking.
  • Tweak: Added one more case insensitive flag to define() calls to prevent future PHP warnings.
  • Tweak: Various code syntax improvements.
  • Tweak: Bumped up WC tested up to version to 7.2.
  • Tweak: Added date output of last run of payment gateway analysis.
  • Tweak: Implemented better guard clause to avoid fatal error when a product page doesn't link to a product in the database.
  • Tweak: Added support for StoreApps Custom Thankyou Page plugin.
  • Tweak: On the settings page hide the save button on tabs that only contain information and no settings.
  • Fix: Add order currency to partial refund hits in GA3 and GA4, which will correct FX conversions where the order currency is different from the GA currency (thanks @Mateusz for reporting this).
  • Fix: Don't output empty categories into the GA4 Measurement Protocol hits because GA4 will not process orders with empty categories (GA4 bug).
  • Fix: Fixed Google Ads cart item data reporting.
  • Fix: Fixed a typo for groupsObject in the OneTrust cookie detection (thanks @armandsdz https://wordpress.org/support/topic/typo-in-js-file/)
  • Fix: Fixed Cookiebot on-cookie-accept event listener.
  • Fix: HPOS compatibility declaration now returns true as it should.
  • Fix: Get PMW payment accuracy report scheduler to schedule the report correctly.

= 1.27.9 = 09.12.2022

  • Tweak: Send current Unix timestamp for Facebook subscription events.
  • Tweak: New notification when license is expired and pro features got disabled.
  • Tweak: Added case insensitive flag to define() calls to prevent future PHP warnings.
  • Tweak: Disabled some loggers.
  • Tweak: Adjusted the woocommerce_ga_disable_tracking filter to only be used if GA is active in the Pixel Manager.
  • Tweak: Refactored logging.
  • Tweak: Improved a few descriptions.

= 1.27.8 = 06.12.2022

  • New: Added phone number click event tracker for Google Analytics (GA3 and GA4)
  • Tweak: Added events for home and other pages for Bing Ads audiences.
  • Tweak: Added product IDs for Bing search results event.
  • Tweak: Added filter to disable the Pinterest for WooCommerce tracking pixel if Pinterest tracking is enabled in the Pixel Manager.
  • Tweak: Fallback for GA4 data API if the order doesn't return a get_date_created() value.
  • Tweak: IP bot filter to reduce the number of server-to-server requests and thus reduce server load.
  • Tweak: Added various type validations for REST routes.
  • Tweak: Increase Gutenberg compatibility for all-products block, cart block and checkout block.
  • Tweak: Streamlined code for backend product retrieval and excluded saving product transients on cart and checkout pages.
  • Tweak: Made sure that the action scheduler hooks always get registered (even when an Ajax request is happening).
  • Fix: Prevent trying to send TikTok EAPI events if the API key is not set and Facebook CAPI is enabled.

= 1.27.7 = 24.11.2022

  • Fix: Fixed Google Ads dynamic ID output for custom filters product ID filters.

= 1.27.6 = 23.11.2022

  • Tweak: Cast order ID to string for Facebook CAPI.
  • Fix: Fixed an HPOS check for the debug info tab.

= 1.27.5 = 23.11.2022

  • Tweak: Prioritize order billing info over logged-in user billing info.
  • Tweak: If available, also subtract order fees (such as PayPal or Stripe fees) from the subtotal.
  • Tweak: Various UX improvements.
  • Tweak: Updated documentation links.
  • Fix: Fixed order ID output for the TikTok browser pixel.

= 1.27.4 = 18.11.2022

  • Tweak: Various UX improvements.
  • Tweak: Changed default setting for ads_data_redaction for Google Consent Mode as per Google advice.
  • Tweak: Added TikTok EAPI test event code setting.
  • Fix: Fixed EAPI data payload.
  • Fix: Pass correct hashed values for TikTok EAPI events.

= 1.27.3 = 17.11.2022

  • Tweak: Various UX improvements.
  • Tweak: Switched storing order status to using order key instead of order ID.
  • Fix: Fixed Automatic Conversion Recovery processing for Google Ads conversions.

= 1.27.2 = 16.11.2022

  • Fix: Fixed saving status after conversion pixels fired.

= 1.27.1 = 16.11.2022

  • Tweak: Removed a console.log statement.
  • Tweak: Remove an error_log if an invalid phone number is passed to the e164 formatter.
  • Fix: Fixed a check if conversions have already fired for logged-in users.

= 1.27.0 = 15.11.2022

  • New: TikTok Events API support
  • New: TikTok Advanced Matching support
  • Tweak: Added a safeguard if no order could be found for GA4 data order attribution retrieval.
  • Tweak: Improved Facebook Advanced Matching support.
  • Tweak: Added current_user_can checks for a few functions.
  • Tweak: Added a safeguard in case too many products are requested from the server.
  • Tweak: Added filter to disable the Facebook pixel in the Facebook for WooCommerce plugin, if Facebook tracking is enabled in the Pixel Manager.
  • Tweak: Switched back to the previous method to attach most of the events to DOM elements, as the old method looks like to be compatible with more themes.
  • Tweak: Added filter to exclude domains from tracking.
  • Tweak: Updated third party libraries.
  • Tweak: Include PMW version in filename of settings export file.
  • Tweak: Added logic for dealing with database downgrades in case a user downgrades to a lower version of the plugin.
  • Fix: Fixed an edge case where get_pmw_tracked_payment_methods would throw an error if no orders were found.
  • Fix: Fixed generation of precompressed admin .js files.

= 1.26.0 = 07.11.2022

  • New: Added order source attribution through GA4 Data API.
  • Tweak: Changed TikTok purchase event to "CompletePayment".
  • Tweak: Added tracking exclusion patterns for Facebook.
  • Tweak: Added filter that enables shop managers to add more tracking exclusion patterns for Facebook.
  • Tweak: Added exclusion for tracking over gtm-msr.appspot.com
  • Tweak: Added new text for pro features demo, so that is clear no pro features are enabled with this.
  • Tweak: Added a filter to decode HTML entities in the product names before output into the data layer.
  • Tweak: Implemented transient caching for volatile products.
  • Tweak: Use a different approach to attach event listeners to events like add-to-cart to increase compatibility with themes that prevent event propagation.
  • Fix: Use order object for partial refunds instead of order ID.
  • Fix: Fixed a bug which would overwrite the data layer if products are added to it above the pmw main script.

= 1.25.1 = 25.10.2022

  • Tweak: Added Facebook CAPI test event code to the settings page.
  • Tweak: Replaced default purchase event for TikTok to be "Purchase".
  • Tweak: Added new PlaceAnOrder event which is triggered when the "Place Order" button is clicked.
  • Tweak: Deprecated Facebook microdata tags output.
  • Tweak: Updated Google Consent Mode default settings if explicit consent is disabled.
  • Tweak: Switched getting tracking scripts from fetch back to jQuery.ajax() as fetch on some sites returned type errors.
  • Fix: Renamed Facebook CAPI subscription event from 'Subscription' to 'Subscribe'.

= 1.25.0 = 11.10.2022

  • New: Added support for the WP AutoTerms plugin
  • New: Added support for the Usercentrics CMP
  • New: Added support for CookiePro by OneTrust CMP
  • Tweak: Better detect order_received_page on themes that don't use the proper WooCommerce conditional and return page_type cart instead.
  • Fix: Fixed order ID output in Google Ads Conversion Adjustments if custom order IDs are in use.

= 1.24.0 = 06.10.2022

  • New: The Pixel Manager has been refactored to be ready for the upcoming WooCommerce High Performance Orders Storage
  • Tweak: Some UI improvements
  • Tweak: Added GAds Conversion Adjustments feed URL to debug info
  • Tweak: Refactor for HPOS
  • Fix: Fixed Google Ads Conversion Adjustments retrieval for canceled orders
  • Fix: Fixed processing order data for Facebook CAPI subscription

= 1.23.0 = 30.09.2022

  • New: Google Ads Conversion Adjustments
  • Fix: Abort hit if the facebook subscription event doesn't find a parent order.
  • Tweak: Few styling fixes in the settings page.

= 1.22.1 = 26.09.2022

  • Tweak: Adjusted the consent API settings parameters

= 1.22.0 = 26.09.2022

  • New: Scroll tracker.
  • New: UX setting to enable the Pinterest enhanced match.
  • New: Added API for developers to handle consent management.
  • Tweak: Improved Google Ads Enhanced Conversions output if required address fields are missing.
  • Tweak: Bumped up Facebook CAPI version to v15.0.
  • Tweak: Included the action scheduler library to avoid the buggy WooCommerce implementation of the action scheduler.
  • Tweak: Implemented a dynamic rate limiter that prevents possible timeouts if too many orders are being analysed in the payment gateway accuracy report.
  • Fix: Fixed the input tag name for the product data.
  • Fix: Fix for the bug that caused multiple action scheduler entries.

= 1.21.0 = 12.09.2022

  • New: Profit Margin order total reporting for marketing pixels (Google Ads, Facebook, Pinterest, etc.).
  • Tweak: Added option to disable the PMW order list info output.
  • Tweak: Updated default settings.
  • Tweak: Added doc link for order list info.
  • Tweak: Refactored running PMW tracking accuracy analysis report to better work with action scheduler to avoid running into its initialization bug
  • Fix: Fixed options validation when importing the settings.
  • Fix: Added safeguard to not fire the conversion pixels on the /order-pay/ page.

= 1.20.2 = 31.08.2022

  • Fix: Fixed division by zero if WPML multi currency is enabled and a product has a price of zero or has no price set.

= 1.20.1 = 31.08.2022

  • Tweak: Added statuses "cancelled" and "refunded" to the exclusions when conversions should not be fired.
  • Tweak: Moved PMW column on orders page after WC actions
  • Fix: Made PMW admin css to only target PMW elements

= 1.20.0 = 30.08.2022

  • New: Automatic Conversion Recovery (ACR).
  • New: Handle subscriptions events through Facebook CAPI.
  • New: Column on order list, showing for which orders the browser conversion pixels have fired.
  • New: View in order list that only shows orders where browser conversion pixels have not fired.
  • Tweak: Simplified the settings for EEC. EEC is now automatically enabled in the pro version.
  • Tweak: Removed the off-site payment gateway notification.
  • Tweak: Added CartFlows custom thankyou pages compatibility.
  • Tweak: Changed product price output to include tax by default, plus added a filter to turn it off.
  • Tweak: Improved event listeners for init_checkout, payment_method_selected and place_order for higher compatibility with themes.
  • Tweak: Automatically disable specific pixels in WooFunnels if they are enabled in the Pixel Manager in order to avoid duplicate tracking.
  • Tweak: Automatically disable specific pixels in Woo Product Feed Pro and Elite if they are enabled in the Pixel Manager in order to avoid duplicate tracking.
  • Tweak: Refactored some code to avoid unnecessary duplicate class initializations.
  • Tweak: Disable gtag in Google Listing and Ads if Google Ads is active in PMW.
  • Tweak: Analyse only orders in the payment gateway report that have been created by customers, not shop managers.
  • Fix: Added brand output for variations.
  • Fix: Fixed a bug that caused the conversion pixels to fire on purchase order payment pages (orders manually created by the shop manager and sent to the customer for payment).
  • Fix: Fixed variations output for FB CAPI server side orders when variations output is enabled.

= 1.19.4 = 14.08.2022

  • Tweak: Added safeguard if function as_enqueue_async_action isn't available.

= 1.19.3 = 14.08.2022

  • Tweak: Performance improvements for the new Diagnostics page.

= 1.19.2 = 13.08.2022

  • Tweak: Few formatting fixes for payment gateway accuracy report
  • Tweak: Improved performance for purchase confirmation page detection and order retrieval.
  • Fix: Removed possible division by zero on settings page

= 1.19.1 = 10.08.2022

  • Tweak: Performance improvements for the new diagnostics report.

= 1.19.0 = 10.08.2022

  • New: Introduced new diagnostics section in the settings page.
  • Tweak: Refactored documentation URL link compilation.
  • Tweak: Added sanitization for importing settings.
  • Tweak: Improved sanitization for arrays.
  • Tweak: Added sanitization for saving state when purchase pixels have fired.

= 1.18.1 = 04.08.2022

  • Fix: Fixed the test which checks if Facebook CAPI is enabled.
  • Fix: Fixed a division by zero error when no conversions have been tracked yet.

= 1.18.0 = 03.08.2022

  • New: Switched all server-side event reporting (including Facebook CAPI) from admin-ajax.php to its own REST API endpoint. Much faster. Reduces server load by approx. 30%.
  • New: Added Ajax fallback if REST API is not available.
  • New: Switched server side events sending from using fetch to navigator.sendBeacon to guarantee delivery and run on lower priority to avoid competing with other high priority requests.
  • New: Switched all server requests to use the REST API with AJAX fallback. Much faster. Reduces server load by approx. 30%.
  • Tweak: Added a documentation link for TikTok.
  • Tweak: Added a documentation link for Pinterest.
  • Tweak: Added WP memory limit to the debug information.
  • Tweak: Added safeguard for CLV output on low memory systems.
  • Tweak: Abort reporting of a subscription order to GA through the MP if it was created manually, and thus no parent order exists.
  • Tweak: Added compressed versions (gzip and brotli) of the minified JavaScript files in order to decrease server load.
  • Tweak: Updated Freemius library to remove PHP 8.x compatibility warnings.
  • Tweak: Updated libphonenumber library.
  • Tweak: Improved payment gateway analysis.
  • Fix: Fixed a bug which prevented the add-to-wishlist event to be triggered.
  • Fix: Fixed the ask-for-rating.js script
  • Fix: Fixed a bug which prevented to run an environment server check on servers that don't return the INPUT_SERVER array.

= 1.17.11 = 08.07.2022

  • New: Added export and import functionality.
  • Tweak: Removed the deprecated ttq.track("Browse") event.
  • Tweak: Tweaked is_order_received_page() in order to allow PMW to work with custom WooFunnels purchase confirmation pages. It might also work with custom Elementor purchase confirmation pages.
  • Tweak: Added an additional trigger if a visitor clicks on an Elementor checkout button.
  • Fix: Added the content_type to the FB InitiateCheckout event.

= 1.17.10 = 21.06.2022

  • Tweak: Updated Google Ads Enhanced Conversions to use new specification with gtag('set', 'user_data', )
  • Tweak: Bumped up Facebook API version to v14.0
  • Tweak: Changed some jQuery event listeners to work around some themes / plugins that stop propagation of those events
  • Tweak: Prevent console error on purchase confirmation page when Google Ads is disabled
  • Tweak: Added product and value info to Facebook InitiateCheckout event
  • Tweak: Refactored getting product details for add-to-cart event plus added condition for variable-subscription
  • Tweak: Adjusted price output for wpmDataLayer products to two decimals
  • Fix: Removed a function not necessary for the WC version

= 1.17.9 = 07.06.2022

  • Fix: Fixed the Facebook browser pixel external ID for anonymous users
  • Fix: Replaced str_contains() with a backward compatible version for the admin notification check

= 1.17.8 = 07.06.2022

  • Tweak: Updated Microsoft Ads custom event names
  • Tweak: Optimized ViewItem event on variable product pages when no product is preselected. The user has now the choice to fire a ViewItem event without product.
  • Tweak: Optimized how, when and where admin notifications are displayed
  • Fix: Removed a duplicate Pinterest pagevisit event
  • Fix: Don't process CLV calculation if no billing email is available

= 1.17.7 = 30.08.2022

  • Tweak: Prohibit processing of Facebook CAPI hits for excluded roles
  • Tweak: Improved checks for excluded roles for GA MP hits
  • Tweak: Bumped up WordPress version to 6.0
  • Tweak: Bumped up WoCommerce version to 6.5
  • Fix: Fixed documentation links that contain anchors
  • Fix: Fixed ask-for-rating scripts

= 1.17.6 = 28.05.2022

  • Fix: Fixed fbp retrieval from browser for FB CAPI

= 1.17.5 = 28.05.2022

  • Tweak: Send proper browser identifiers when an order is created by an admin and then paid through the payment link by the customer for Facebook CAPI
  • Tweak: Make sure that the correct Facebook CAPI user identifiers are processed for the purchase events when payment gateways with iframes are in use
  • Tweak: Improved handling of user identifiers when processing of anonymous Facebook CAPI hits is allowed
  • Tweak: Added safeguard to check if wpmDataLayer.products exists before trying to filter it
  • Fix: Fixed billing phone output in FB CAPI purchase hit
  • Fix: Fixed fbc validation

= 1.17.4 = 26.05.2022

  • New: Added GA4 session ID handling over the Measurement Protocol. This is not documented by Google and is experimental.
  • Tweak: Added tier info into debug info
  • Tweak: Added more FB user information for logged in users
  • Tweak: Prevent slow processing of large amount of variation data for variable products with > 64 variations
  • Tweak: Increased server test timout to minimize false negatives
  • Fix: Workaround if $_server['HTTP_HOST'] is not set
  • Fix: Workaround if $_server['REMOTE_ADDR'] is not set

= 1.17.3 = 19.05.2022

  • Tweak: Added fbp and fbc validation for browser based FB CAPI events
  • Fix: Fixed a bug that could prevent processing the purchase events under certain conditions
  • Fix: Another fix for Facebook microdata output to prevent fatal errors when processing variable products with unsynced products
  • Tweak: Optimized clv query for clv output
  • Tweak: Optimized retrieval of purchase labels for Google Ads
  • Tweak: Optimized precheck for Google Ads purchase event
  • Tweak: Optimized retrieval function for conversion identifiers with label for Google Ads
  • Tweak: Optimized new_customer query to run faster
  • Tweak: Updated libphonenumber
  • Fix: Prevent that the Freemius menu tabs get displayed in other plugins
  • Fix: Fixed the documentation links

= 1.17.2 = 13.05.2022

  • Fix: Additional safeguard to check for array when checking for updates

= 1.17.1 = 12.05.2022

  • Tweak: Adjusted db query for clv order total

= 1.17.0 = 12.05.2022

  • New: Added user_id to Google Ads remarketing pixel
  • Tweak: Improved data transmitted with Facebook CAPI event payload
  • Tweak: Removed processing of GA4 refunds over the front-end and only allow processing refunds over the Measurement Protocol
  • Tweak: Added doc links for the wc.com version
  • Fix: Another safeguard to prevent processing of out-of-stock variations through the FB microdata script output.
  • Fix: Added external_id in the FB pixel event and more identifiers on purchases
  • New: Added customer lifetime value output for Google Ads
  • Tweak: Renamed the plugin from Pixel Manager for WooCommerce to Pixel Manager for WooCommerce
  • Tweak: Added user identifiers for FB for orders and logged in users
  • Tweak: Temporary disabled off_site_payment_gateway check
  • Fix: Now the cache is only flushed when the Pixel Manager itself is updated
  • Fix: Fixed the new_customer evaluation for guest buyers
  • Fix: Fixed the position of the 'scripts blocked' warning message in the back-end if admin scripts don't load
  • Fix: Fixed the link of the 'admin scripts not loaded' message

= 1.16.14 = 02.05.2022

  • Tweak: Refactored Facebook CAPI event handling. Added external_id
  • Tweak: Bumped up Facebook API version to v13.0
  • Tweak: Refactored Google Analytics visitor identifier tracking for Measurement Protocol
  • Tweak: Set that admins and shop managers are being tracked by default, because the majority of new users expects this
  • Fix: Fixed document links for Meta (Facebook) settings

= 1.16.13 = 30.04.2022

  • Tweak: One more adjustment to make sure categories are being output for purchase events on shops that don't properly sync the categories down to the variants
  • Fix: It can happen that no proper product object is created by WC and is passed to the Facebook microdata output. In that case WPM will now terminate the microdata output seamlessly.
  • Fix: Fixed a syntax error in on of the back-end admin scripts

= 1.16.12 = 27.04.2022

= 1.16.11 = 25.04.2022

  • New: Added function with which custom Facebook events can be triggered (including Facebook CAPI if it is enabled in the pro version)
  • Tweak: Changed cursor for submenu links in the back-end
  • Tweak: Added an additional check for a cookie name for Cookie Law Info
  • Tweak: Some code style changes
  • Tweak: Updated libphone library
  • Tweak: Updated Freemius library

= 1.16.10 = 21.04.2022

  • Tweak: Facebook microdata output now properly treats product variations
  • Fix: Borlabs cookie auto-detection for Microsoft Ads (Bing Ads) fixed

= 1.16.9 = 19.04.2022

  • Tweak: Added European Union as Google Consent Mode region selection
  • Tweak: Refactored user role tracking permissions
  • Tweak: Enabled tracking of manual orders from the back-end
  • Tweak: Made sure that manual back-end order get tracked with correct GA cid if the cid is available
  • Tweak: Refactored some of the GA4 functions
  • Tweak: Changed escaping method for outputting the titles and names into the wpmDataLayer in order to properly deal with characters like a dash, ampersand, etc.
  • Tweak: Load categories for variations from parent product, because on some installs the variations don't inherit the parent product's categories
  • Tweak: Removed more cruft from the code and improved the syntax here and there
  • Tweak: Adjusted validation for the Google Merchant Center ID
  • Tweak: Updated selectWoo.full.*.js
  • Tweak: Tested up to WooCommerce 6.4

= 1.16.8 = 14.04.2022

Tweak: Added more page type outputs (for better product list performance analysis in GA) Tweak: Refactored GA3 and GA4 product data collection Fix: Fix for view item events on single variation pages

= 1.16.7 = 12.04.2022

  • Tweak: Improve output formatting for enhanced_conversion_data if shipping address is not set

= 1.16.6 = 11.04.2022

  • Tweak: Safeguard for JavaScript optimizers that ignore the jQuery dependency of WPM and load jQuery after WPM
  • Tweak: Refactored the WPM JavaScript library (split code logically and into folders)

= 1.16.5 = 08.04.2022

  • Tweak: More verbose logging of WPM load and pixel consent status into the dev console
  • Tweak: Added new logic to retrieve categories for variations

= 1.16.4 = 07.04.2022

  • Fix: Fixed a bug that prevented disabling user role tracking

= 1.16.3 = 07.04.2022

  • Tweak: Remove the IPv6 to IPv4 mapping in case the the external user IP contains one
  • Tweak: Improved local IP detection
  • Tweak: Replaced deprecated FILTER_SANITIZE_STRING filter with FILTER_SANITIZE_FULL_SPECIAL_CHARS

= 1.16.2 = 05.04.2022

  • Tweak: Added filter to add custom order statuses that trigger a purchase hit over the Measurement Protocol
  • Fix: Improved detection of users that are deactivated for tracking

= 1.16.1 = 05.04.2022

  • Tweak: Removed data-cfasync=”false” to allow Cloudflare Rocket Loader to optimize scripts
  • Tweak: Removed unused functions
  • Tweak: Refactored some code and removed cruft
  • Tweak: Improved logic of when to load cart items into the wpm dataLayer
  • Tweak: For users, who have been disabled for tracking, prevent tracking entirely, not just for purchase events
  • Tweak: Renamed Facebook to Meta
  • Tweak: Add log entry when a purchase hit has been prevented because of a user role that has been opted out from tracking

= 1.16.0 = 01.04.2022

  • New: Setting to exclude specific user roles
  • Tweak: Removed a few deprecated and inactive settings
  • Tweak: Updated Enhanced Conversions output as per updated specs by Google
  • Tweak: Improved formatting for Facebook CAPI event parameters

= 1.15.5 = 30.03.2022

  • Tweak: Removed an obsolete db cleanup function
  • Tweak: On variable products, with no preselection send the valid variation ID if variations output is enabled
  • Tweak: Added safeguard for debug info when URL redirect test fails to open the URL
  • Tweak: Syntax improvements in wpm.addProductToCart()
  • Tweak: Simplified logic when the wpm.getCartItems() function is called
  • Tweak: Deprecated the wpm_track_mini_cart filter
  • Tweak: Added cookie detection for Cookie Law CMP with French named cookies
  • Tweak: Added one more safeguard in case the main wpmDataLayer init is being blocked by some third party plugin and products need being loaded into the wpmDataLayer further down below
  • Tweak: Added console log output when pixels don't fire because of user consent choice
  • Tweak: Added a payload logger for Facebook CAPI events
  • Tweak: Initiate WC session later in the checkout funnel (if necessary at all) to improve caching conditions
  • Tweak: Added URL parameter debugConsentMode for verbose debug output in the browser console in relation to user cookie consent

= 1.15.4 = 23.03.2022

  • Fix: Product name transmission for Google Analytics Universal purchases

= 1.15.3 = 22.03.2022

  • Tweak: Attach click handlers later during loading in order to better deal with some side cases
  • Tweak: Fire viewItem event on variable product pages when no variation is selected yet, sending the ID of the parent product

= 1.15.2 = 21.03.2022

  • Tweak: Silenced status icon on compatibility mode setting when disabled
  • Tweak: Made Autoptimize, FlyingPress, Async JavaScript, Optimocha and WP Optimize JavaScript optimization disabler optional through compatibility mode
  • Tweak: Made Litespeed Cache and SG Optimizer JavaScript optimization disabler mostly optional through compatibility mode. Some exclusion have been left permanent without which the tracking scripts would break.
  • Fix: Added safeguard if old version of FlyingPress is being used and compatibility mode is enabled
  • Fix: Added safeguard if old version of WP Rocket is being used and compatibility mode is enabled
  • Fix: Added safeguard if Yoast SEO is being used and compatibility mode is enabled

= 1.15.1 = 18.03.2022

  • Tweak: Made WP Rocket JavaScript optimization disabler optional through compatibility mode
  • Tweak: Adjusted sourcemaps output to make them work with Firefox
  • Fix: Proper check for user id when logged in

= 1.15.0 = 15.03.2022

= 1.14.3 = 24.02.2022

  • Tweak: Adjusted all documentation links to point to new domain and sub-folder
  • Tweak: Improved handling with SG Optimizer
  • Fix: Nodedupe Google Ads conversion script output and event name when cart data is turned off

= 1.14.2 = 17.02.2022

  • Tweak: Added items to Microsoft Ads purchase event
  • Tweak: Added 'wpm-js' to optimization exclusion list
  • Fix: Added a safeguard when checking for order purchase redirects in the UX
  • Fix: Fixed a double json encoded string for the GA4 browser purchase event

= 1.14.1 = 12.02.2022

  • Tweak: Avoid loading the entire admin UX in case an admin is not viewing the plugin admin page itself
  • Fix: Fixed a side case where the plugin would output wrong html in case the pro version demo is enabled

= 1.14.0 = 11.02.2022

  • New: Save gclid on order for possible later use
  • Tweak: Change purchase confirmation event from CompletePayment to PlaceAnOrder
  • Tweak: Replace sweetcode.co references with sweetcode.com
  • Fix: Replaced function wpm.objectExists() because it did not always work properly
  • Fix: Plenty of syntax adjustments in order to adhere to all WooCommerce and WordPress coding standards
  • Fix: Fixed refunds for GA UA measurement protocol

= 1.13.1 = 28.01.2022

  • Fix: fixed an error that would appear if no Google pixel is turned on and the wpm scripts are looking for Google values in the wpmDataLayer

= 1.13.0 = 28.01.2022

  • New: Added experimental support for polyfill.io (may be dropped at any time)
  • Tweak: Tweaked settings for new cookie names in CMP Complianz >= version 6.0.0
  • Tweak: Rebranding to sweetcode.co
  • Tweak: Refactored plenty function names
  • Tweak: Improved WP Rocket cache flush and recreation
  • Tweak: Refactored documentation links into a class
  • Tweak: Added safeguards in case some wpm functions have not been loaded properly
  • Tweak: Included transpiling ES6 into the JS minification process
  • Tweak: Combined all front-end and back-end scripts into single, optimized and compressed files
  • Tweak: Removed functions from the newly combined files that are not necessary anymore, like Promise.allSettled

= 1.12.4 = 11.01.2022

  • Tweak: Removed some unnecessary console.log outputs
  • Tweak: Added a safeguard when flushing Flying Press Cache
  • Tweak: Added support output for various CMPs into the admin pages
  • Tweak: Added more safeguards in case on the purchase confirmation page the order can't be retrieved through query vars
  • Tweak: A few improvements how to read out cookies for various CMPs
  • Tweak: Improved gtag firing based on cookie consent
  • Tweak: Improvements to read out of Cookie Script consent cookie
  • Tweak: Improvements to read out of Cookiebot consent cookie

= 1.12.3 = 04.01.2022

Fix: Deliver proper updated wpm.jsx

= 1.12.2 = 03.01.2022

  • Tweak: Added automatic improvements for users of the Optimocha Speed Booster Pack plugin
  • Tweak: Added automatic improvements for users of the Async JavaScript plugin
  • Tweak: Added automatic improvements for users of the Flying Press plugin
  • Tweak: Added a few console warnings if wooptpm scripts are being deferred
  • Fix: Fixed a bug that appeared when a shop was using the "Complianz | GDPR/CCPA Cookie Consent" consent management plugin

= 1.12.1 = 02.01.2022

  • Tweak: Added back the cookie prevention filter and included a deprecation notice
  • Fix: Fixed a bug that appeared when a shop was using the "CookieYes, GDPR Cookie Consent (Cookie Law Info)" consent management plugin

= 1.12.0 = 31.12.2021

  • New: Added dynamic remarketing ID output for the WooCommerce Google Listings & Ads plugin
  • Tweak: Fixed the wooptpm_facebook_capi_api_version filter name
  • Tweak: Bumped up Facebook API version to 12.0
  • Tweak: Changed PlaceAnOrder TikTok event to CompletePayment
  • Tweak: Bumped up minimum PHP version to 7.3
  • Tweak: Much more cache friendly handling of Cookie Consent Platforms
  • Tweak: Added support for several more Cookie Consent Platforms
  • Tweak: Properly handle error if WooCommerce is not active

= 1.11.7 = 29.10.2021

  • New: Added gallery images links to Facebook Microdata output
  • Tweak: Added documentation link for GA4 API secret
  • Tweak: Added add-to-wishlist, search and initiate-checkout events to TikTok
  • Tweak: Increased Facebook Microdata Feed Description length to 5000 characters
  • Tweak: Adjusted HotJar ID validation to accept 6 digit IDs
  • Tweak: Switched body reference to jQuery(document) for better compatibility
  • Fix: TikTok ViewContent and PlaceAnOrder event names
  • Fix: Fixed misspelling in Google Consent mode region parameter

= 1.11.6 = 17.09.2021

  • Tweak: Bumped up Facebook API version to v11.0
  • Tweak: Added filter for Facebook CAPI API version
  • Tweak: Improved some admin interface text

= 1.11.5 = 02.09.2021

  • New: Sending referrer, user_agent, gclid and viewport to GA UA through measurement protocol
  • Tweak: Added a delay to save one of the Google target IDs on the session in order to make sure the save is executed properly
  • Tweak: Added filters for url_passthrough and ads_data_redaction
  • Tweak: Don't disable the deactivation button anymore when a user chooses "other" from the list of reasons
  • Tweak: Added minified versions of all front-end scripts
  • Tweak: Removed query to remove old refund keys from db
  • Fix: Fixed TikTok activation condition
  • Fix: Fixed too few parameters being passed to woocommerce_subscription_renewal_payment_complete

= 1.11.4 = 13.08.2021

  • Fix: Fixed cannot access offset of type string on string in Google measurement protocol

= 1.11.3 = 13.08.2021

  • Fix: Fixed an array type error that could happen in rare cases

= 1.11.2 = 13.08.2021

  • New: Starting to save gclid to orders for later use
  • New: Added shortcodes for Snapchat and TikTok
  • New: Saving referrer in a wooptpm cookie
  • Tweak: E.164 phone format output for Google Ads Enhanced Conversions
  • Tweak: Add multiple addresses to Google Ads Enhanced Conversions if billing and shipping addresses are different
  • Tweak: Added Facebook CAPI events to shortcodes
  • Tweak: Added manual view-item shortcode for custom pages where add-to-cart shortcodes are being used, but because of that, view_item events are missing
  • Tweak: Moved Freemius to composer vendor directory
  • Tweak: Improved handler to save cookies for FB session
  • Tweak: Added fallback to get an order from the order received page in case a plugin messes with query vars

= 1.11.1 = 05.08.2021

  • New: Automatic cache purge for Kinsta on plugin updates and saved settings
  • Tweak: Added safeguard in order to prevent a fatal error when coming across a variation that doesn't properly link to a parent product
  • Tweak: Added filters to suppress certain admin notifications
  • Tweak: Changed global for notifications db name
  • Tweak: Changed function declaration for varExists in order to work around a Google Closure bug
  • Fix: Renamed transactions_id to transaction_id for GA4 MP refunds
  • Fix: Built in a safeguard for the debug info in case no order exists yet in the shop

= 1.11.0 = 26.07.2021

  • New: Added view_cart event for GA4
  • Tweak: Added coupons to GA UA and GA4 purchase events
  • Tweak: Avoid an issue when trying to read WP Rocket options when no options exist yet
  • Tweak: Removed some unnecessary parameters from Google Ads purchase confirmation script
  • Tweak: Output purchase value with max two decimals
  • Fix: Fixed a syncing cached cart syncing issue
  • Fix: Fixed the FB microdata product IDs in case custom IDs are being used (with filters)
  • Fix: Fixed enhanced conversion declaration from let to var
  • Fix: Renamed transactions_id to transaction_id for GA4 MP
  • Fix: Fixed some events on cart page for variable products

= 1.10.11 = 19.07.2021

  • New: TikTok pixel
  • New: Filter to enable enhanced match for Pinterest
  • New: Filter for order items
  • New: Implemented warning for incompatible plugins
  • Tweak: Setting GA cid already on product page if possible
  • Tweak: Remove nonce check when setting cid on product pages because product pages are cached
  • Tweak: Added logging for cid retrieval
  • Tweak: Save cid_set cookie as normal cookie if sessionStorage is not available
  • Tweak: Comma separated categories for GA UA
  • Tweak: Proper category variables for GA4
  • Tweak: Refactored wooptpm.setCookie() so that it can create session cookies
  • Fix: item_name for GA4 add_to_cart events
  • Fix: Added proper product ID output to addtocart, pagevisit and checkout events for Pinterest
  • Fix: Don't return a random cid in get_cid_from_session, but handle this in set_cid_on_order
  • Fix: Output of product prices as float
  • Fix: Added string to float conversion in wooptpm_get_order_item_price to make sure a float is returned

= 1.10.10 = 7.7.2021

  • New: Snapchat pixel
  • New: Automatically flush cache of caching plugins and platforms on plugin settings changes
  • New: Report hosting platform in debug info
  • Tweak: Added new compatibility exclusions for WP Rocket
  • Tweak: Added option to filter GA4 parameters

= 1.10.9 =

  • New: Filter for custom brand taxonomy
  • New: Added payment gateway usage and successful redirect stats to free version
  • Tweak: Better handling of saving partial refund hits in the db
  • Tweak: Refactored several elements in order to render correctly in RTL environments
  • Tweak: If product belongs to multiple categories, output them in a comma separated list for GA
  • Tweak: Automatically detect if mini cart is being used, and depending on this, enable or disable wooptpm_get_cart_items
  • Tweak: Caching cart contents in sessionStorage in order to avoid as many API calls to backend as possible
  • Fix: Removed unnecessary FB CAPI calls if CAPI is disabled
  • Fix: Fixed version check for db upgrade function in case someone has been using one of the earliest versions of the plugin

= 1.10.8 =

  • Tweak: Fallback on PayPal check if option doesn't exist in the db
  • Tweak: Removed manual function override from Freemius source
  • Tweak: Added page type output on order received page
  • Tweak: Switched data wooptpmProductId output on product pages to meta tag for main product
  • Fix: Fallback for a divide by zero in case the gateway analysis only has zero orders to analyse
  • Fix: Fallback in case no orders have been saved by de duplication prevention script
  • Fix: Fixed ViewContent id_type variable for Facebook, GA UA and GA4
  • Fix: Added dynamic remarketing purchase script

= 1.10.7 =

  • New: Added link for affiliate program
  • New: Added hook_suffix into debug info
  • Tweak: Only save fbp on server if FB CAPI is enabled, and only do it on checkout and cart pages
  • Tweak: Adjusted the $hook_suffix check in admin.php because on some installs the $hook_suffix output is buggy

= 1.10.6 =

  • New: Added the new Google Ads enhanced conversions feature
  • New: Added conversion accuracy warning if the PayPal standard payment gateway is active
  • New: Added support for WooCommerce composite products
  • Tweak: Lowered ajax requests on Google cid setter significantly
  • Tweak: Lowered ajax requests on Facebook session id setter significantly
  • Tweak: Switched order duplication prevention to process internal order ID (not order number)
  • Tweak: Implemented better way to reference .js and .css files
  • Tweak: Removed jquery.cookie.js dependency

= 1.10.5 =

  • Tweak: parseFloat for value in Facebook and Pinterest just in case no proper input is received
  • Tweak: Added an exclusion to fix an issue with Microsoft Ads, caused by Cloudflare Rocket Loader
  • Tweak: Removed launch deal code
  • Tweak: Cleaned up some cruft
  • Tweak: Added new element selector for the intersection observer for product templates that pack the wooptpmProductId into a child > child hierarchy
  • Fix: Added default quantity if quantity field has been removed on a product page
  • Fix: Switched to treat order IDs as strings. Otherwise it would throw an error if a shop owner changes order IDs to also use letters.

= 1.10.4 =

  • New: Added filter for Google cross domain filter setting
  • Tweak: Added more safeguards in case WC processes a product ID which is not a product
  • Fix: Product data output on some pages triggered a critical error

= 1.10.3 =

  • Tweak: Switch to use different hook on product pages to output main product data

= 1.10.2 =

  • Tweak: Renamed and deprecated several old filters
  • Fix: Removed unnecessary function call from pinterest__premium_only.js

= 1.10.1 =

  • New: Added a debug test to see if the server can reach the outside world with a wp_remote_get() request
  • Tweak: Fire the Facebook CAPI event even when order goes into status on-hold. Otherwise FB complains because of delayed reporting.
  • Tweak: Added more Facebook CAPI visitor identifiers
  • Tweak: Added filter to disable mini cart tracking
  • Tweak: Added better fallback for cookie retrievals if cookies can't be saved in the session
  • Fix: Fire view_item event on products that are out of stock
  • Fix: In case the redirect check returns an array of redirects, we return the last array member.

= 1.10.0 =

  • New: Facebook CAPI
  • Tweak: Only show the rating notice to admins of the shop.
  • Tweak: Added more exclusions for WP Rocket
  • Tweak: Added exclusions for WP Optimize
  • Tweak: Additional exclusions for Autoptimize
  • Tweak: Removed hit on for parent IDs on a variable product page

= 1.9.6 =

  • Tweak: Orders now get reported as soon as the order goes into status 'processing'
  • Tweak: Added one more tweak for LiteSpeed Cache users
  • Fix: Fix GA UA eec checkout progress steps
  • Fix: Changed reading options from database to passing options from primary instance in order to avoid options caching issues on saving.

= 1.9.5 =

  • Tweak: Added nonces to some ajax calls
  • Tweak: Added dependencies to enqueued scripts
  • Tweak: Improved the parent selector for the mutation observer for lazy loaded products
  • Tweak: Implemented better product selector for modification observer
  • Tweak: Added new selector for related products
  • Fix: Improved the verification for the Google Analytics 4 API secret. It was too restrictive.
  • Fix: Fixed the cid for subscription renewal purchases with missing cid on the parent order
  • Fix: Fixed the deduplication check for GA UA MP hits

= 1.9.4 =

  • New: add_to_wishlist event for GA and Facebook
  • New: InitiateCheckout event for FB
  • New: Send purchase events using the GA UA Measurement Protocol
  • New: Send subscription renewal purchase events using the GA UA Measurement Protocol
  • New: Send full refund events using the GA UA Measurement Protocol
  • New: Send partial refund events using the GA UA Measurement Protocol
  • New: Send purchase events using the GA4 Measurement Protocol
  • New: Send subscription renewal purchase events using the GA4 Measurement Protocol
  • New: Send full refund events using the GA4 Measurement Protocol
  • New: Send partial refund events using the GA4 Measurement Protocol
  • Tweak: Only activate eec scripts if GA UA or GA4 are enabled
  • Tweak: Finalized improvement for front-end error handling
  • Tweak: Added a JS modification exclusion for Autoptimize in order to prevent our script to get modified and broken
  • Fix: Fixed a selector for cart items on the cart page which caused on certain custom shop templates to trigger an error

= 1.9.3 =

  • Tweak: Added one more layer of safeguards if wpm.jsx can't evaluate the current productId

= 1.9.2 =

  • Tweak: Added one more safeguard if wpm.jsx can't evaluate the current productId

= 1.9.1 =

  • Tweak: Much better selector for view_item_list trigger
  • Tweak: Added some some safeguards in order to stop processing in case no productId can be evaluated
  • Tweak: Removed deprecated "disable gtag insertion" feature entirely

= 1.9.0 =

  • New: Implemented view_item event for variations when selected on the product page
  • New: Implemented view_search_results event
  • Tweak: Use proper select_item event in GA4 not the deprecated select_content event anymore
  • Tweak: Moved view_item event processing entirely to front-end
  • Tweak: Improved selector for products if WPML WC multi currency is being used
  • Tweak: Better test to check if WPML WC multi currency is active
  • Tweak: Improved function to get the productId on select_item event
  • Tweak: Additional caching exclusions for SG Optimizer
  • Tweak: Changed the gtag code in order to make it better testable
  • Tweak: Moved some scripts to the footer
  • Tweak: Improved add_to_cart trigger
  • Tweak: Refactored view_item_list event entirely to be unaffected by caching mechanisms
  • Tweak: Added a new view_item_list trigger with some interesting options
  • Fix: Fixed front-end triggers for Google and Facebook to only fire if the pixels are enabled
  • Fix: Fixed an array check if an old WP Rocket version was installed and threw a notice about a missing array index
  • Fix: Output correct price if WPML Multilingual with Multi-currency is running

= 1.8.28 =

  • New: Filter to switch Google Analytics ID output to SKU
  • New: Process discounted order item price for GA if Woo Discount Rules is active
  • New: Implemented all main GA4 events
  • New: Logged in event for GA
  • New: Google user ID tracking
  • Tweak: Twitter ID check now allows numbers too
  • Tweak: Moved getCartItems to document.load event
  • Tweak: Added Freemius purchase conversion
  • Tweak: Avoid number output with too many decimals
  • Tweak: More reliable method to get order from order received page
  • Fix: Imported necessary classes for refunds
  • Fix: Proper variable types for purchase confirmation variables
  • Fix: Initialize wooptpmDataLayer.pixels early, so that all pixels can use it
  • Fix: Replaced $order->get_id() with $order->get_order_number in order to fix a bug on a small subset of shops
  • Fix: Get proper WP db prefix for refunds SQL query

= 1.8.27 =

  • Tweak: LD check

= 1.8.26 =

  • Tweak: Implemented permanent compatibility mode for SG Optimizer
  • Tweak: Implemented permanent compatibility mode for LiteSpeed Cache
  • Tweak: Refactored the Facebook pixel and events

= 1.8.25 =

  • Tweak: Implemented permanent compatibility mode for WP Rocket
  • Fix: Refactored a JavaScript regex that was not working in Safari

= 1.8.24 =

  • Fix: Added a function that should be available in the free version conversion_pixels_already_fired_html

= 1.8.23 =

  • Fix: Include output of variable products into the visible_products object
  • Fix: Added a missing opening tag for shops that are still using the gtag deactivation option

= 1.8.22 =

  • New: Added Google Analytics eec begin_checkout event
  • New: Added Google Analytics eec set_checkout_option events
  • New: Added Google Analytics eec refund events
  • New: Added initial GA4 eec events (needs more tweaking though)
  • Tweak: Added Google Analytics eec add_to_cart event for all /?add-to-cart=123 link clicks
  • Tweak: Partially decoupled pixels from pixel manager
  • Tweak: Refactored browser e-commerce events into pubsub
  • Fix: Added proper phone conversion label
  • Fix: Under some circumstances rating_done is not set in the wgact_ratings option. This fix adds this default option.
  • Fix: Fixed the GA4 config command

= 1.8.21 =

  • New: Added Google Analytics eec product click events
  • New: Added Google Analytics eec product add_to_cart and remove_from_cart events
  • New: Added output of related up- and cross-sell product view_item_list list events for Google Ads dynamic remarketing
  • New: Added &nodedupe URL parameter for testing the order confirmation page
  • Tweak: Build in a fallback for misconfigured variable products that trigger an "Error: Call to a member function get_sku() on bool"

= 1.8.20 =

  • Fix: Fixed the Google Analytics config filter

= 1.8.19 =

  • New: Added Pro feature demo mode
  • New: Added shortcodes for tracking leads and similar conversions
  • New: Filter to adjust Google Analytics config parameters

= 1.8.18 =

  • New: Added Borlabs support for Google Consent Mode
  • New: Google Analytics link attribution
  • Tweak: Bumping up WP supported version to 5.7
  • Tweak: Some code syntax cleanup
  • Fix: Fixed the country name for Macedonia in Google consent mode
  • Fix: Fixed duplicated jobs option in Google business verticals

= 1.8.17 =

  • Tweak: Remove some freemius options

= 1.8.16 =

  • New: Google Analytics enhanced e-commerce
  • New: Added Google consent regions setting
  • New: Output the variation ID for dynamic remarketing
  • New: Maximum compatibility mode
  • Tweak: Strip HTML tags from description in microdata output for Facebook
  • Tweak: Added item_group_id to microdata output for Facebook
  • Tweak: Switched logic to activate conversion cart data automatically when merchant center ID is set
  • Tweak: Made Google Analytics always receive the post ID as product ID because this is more robust
  • Tweak: Removed some unnecessary text output in the settings
  • Fix: Script blocker documentation link

= 1.8.15 =

  • New: Added Facebook microdata output
  • Fix: Determine correctly new customer for shopping cart data on new customers who paid immediately
  • Tweak: Created new trait to calculate brand for product
  • Tweak: Added a new array with additional product attributes (like brand which is calculated)
  • Tweak: added ability to load traits in autoload.php
  • Tweak: Bumped up WC version
  • Tweak: Added an additional is_array() check in order to suppress a PHP 7.4 notice when checking the environment

= 1.8.14 =

  • Tweak: Make the noptimize tag only appear if Autoptimize is active
  • Tweak: Removed a duplicate filter
  • Fix: Moved get_cart() query into is_cart() condition

= 1.8.13 =

  • New: Filter to prevent conversion pixels to fire on purchase confirmation page
  • Tweak: Replaced _e() with echo where necessary
  • Tweak: Syntax cleanup

= 1.8.12 =

  • Tweak: Calculate filtered order total for all pixels

= 1.8.11 =

  • Tweak: Added product IDs to Microsoft Advertising purchase event
  • Fix: Removed a function call where the function was missing

= 1.8.10 =

  • New: Google consent mode
  • New: Setting for cookiebot
  • New: Added advanced order deduper
  • Tweak: Removed Pinterest noscript tags
  • Fix: Added product IDs to Microsoft Advertising purchase event
  • New: Added basic order deduper
  • New: Google Shopping new_customer parameter
  • New: Added switch to enable transaction deduping (default enabled)
  • Tweak: Product identifier output now for all the same
  • Tweak: Adjusted the HTML comment output
  • Tweak: Added new cookie for Borlabs Cookie
  • Tweak: Made some input elements clickable
  • Tweak: Moved check for failed payments and admin and shop manager up to the pixel manager

= 1.8.9 =

  • Tweak: readme.txt links
  • Tweak: fallback to post ID in case the SKU is not set
  • Tweak: Adjusted the HTML comments
  • Tweak: Don't inject cart scripts on cart page if cart is empty

= 1.8.8 =

  • Tweak: Adjusted directory name
  • Tweak: Bumped up version
  • Tweak: Changed regex for GMC IDs to allow 7 digit IDs
  • Tweak: Improved speed to hide script blocker warning
  • Tweak: Adjusted documentation links

= 1.8.7 =

  • Fix: Added new classes to SVN

= 1.8.6 =

  • Tweak: Code cleanup
  • Tweak: Adjusted doc links

= 1.8.5 =

  • Tweak: Bing dynamic remarketing events
  • New: Hotjar pixel

= 1.8.4 =

  • New: Microsoft Ads pixel
  • New: Twitter pixel
  • New: Pinterest pixel
  • New: Hotjar pixel
  • Tweak: Renamed subsection 'Order Logic' to 'Shop'
  • Tweak: Refactored debug info
  • Tweak: Added WP Rocket JavaScript concatenation to debug info

= 1.8.3 =

  • New: Google business vertical setting

= 1.8.2 =

  • New: Check for WP Rocket JavaScript concatenation
  • New: Added filter which helps adding multiple additional conversion IDs and labels

= 1.8.1 =

  • Fix: Version number
  • Fix: FB default pixel id

= 1.8.0 =

  • New: Google Analytics UA standard beta
  • New: Google Analytics 4 beta
  • New: Google Optimize beta
  • New: Activation indicators
  • Tweak: Put admin scripts into header for faster rendering
  • Fix: Detect proper admin path in tabs.js

= 1.7.13 =

  • New: Facebook pixel
  • Tweak: Adjust db and bump up to version 3
  • Tweak: Introduced Pixel_Manager and restructured Google Ads class

= 1.7.12 =

  • Fix: Removed namespace for main class because it was conflicting with freemius in some cases

= 1.7.11 =

  • Fix: Directory name fix
  • New: Warning message if an ad- or script-blocker is active
  • Tweak: Improved one of the db saving functions
  • Tweak: Start using namespaces

= 1.7.10 =

  • Fix: child theme detection

= 1.7.9 =

  • Fix: Roll back to 1.7.7 since namespace don't work everywhere
  • Fix: child theme detection

= 1.7.8 =

  • New: Warning message if an ad- or script-blocker is active
  • Tweak: Improved one of the db saving functions
  • Tweak: Start using namespaces

= 1.7.7 =

  • Fix: Don't show the rating popup if an admin uses a script blocker

= 1.7.6 =

  • Fix: Improved check if dynamic remarketing settings already has been set before checking for it.
  • Fix: Saving to the database threw sometimes warnings that have been fixed.
  • Tweak: Styling changes

= 1.7.5 =

  • New: Added checks for freemius servers
  • New: Dynamic remarketing pixels
  • New: Deactivation trigger for the WGDR plugin if dynamic remarketing is enabled
  • Fix: Adjusted the cookie name for Cookie Law Info
  • Fix: Improved detection if WooCommerce is active on multisite
  • Fix: Fixed default setting for conversion_id
  • Tweak: Added back rating testing code
  • Tweak: Adjusted some links
  • Tweak: Code style cleanups

= 1.7.4 =

  • Fix: Fixed the ask for rating constant

= 1.7.3 =

  • Fix: Don't open the rating page if user clicks on already done
  • Tweak: Backward compatibility to PHP 7.0

= 1.7.2 =

  • Fix: Fixed a printf syntax error that caused issues on some installations

= 1.7.1 =

  • Tweak: Removed deletion of settings on uninstall in order to preserve the settings

= 1.7.0 =

  • New: Added German translations
  • Fix: Reversed some code in freemius to make it compatible with older versions of PHP (< PHP 7.2)
  • Fix: Fixed the uninstall hook for it to work with freemius
  • Tweak: Added some comments for translators
  • Tweak: Removed old language packs
  • Tweak: Add gtag config if gtag insertion is disabled
  • Tweak: Rating request improved
  • Tweak: Removed plugin ads
  • Tweak: Added documentation
  • Tweak: Updated db scheme
  • Tweak: Merge new default options recursively
  • Tweak: On save merge new and old options recursively, set missing checkbox options to zero, omit db_version

= 1.6.17 =

  • Tweak: Reactivate freemius

= 1.6.16 =

  • Fix: Deactivate freemius

= 1.6.15 =

  • Tweak: Adjusted freemius main slug for plugin

= 1.6.14 =

  • New: Implemented Freemius telemetry
  • Tweak: Adjustments to the descriptions and links to new documentation
  • Tweak: Only run if WooCommerce is active

= 1.6.13 =

  • New: Implemented framework for sections and subsections
  • Tweak: Some code cleanup
  • Tweak: Made strings more translation friendly
  • Tweak: Properly escaped all translatable strings
  • Fix: Textdomain

= 1.6.12 =

  • New: Plugin version output into debug info
  • Fix: Conversion id validation
  • Tweak: Moved JavaScript to proper enqueued scripts
  • Tweak: Bumped up WC and WP versions

= 1.6.11 =

  • New: Tabbed settings
  • New: Debug information
  • Tweak: Code style adjustments

= 1.6.10 =

  • Fix: Disabled some error_log invocation since it can cause issues in some rare server configurations

= 1.6.9 =

  • Fix: Re-enabled settings link on plugins page

= 1.6.8 =

  • Fix: Changed how Borlabs Cookie activation works

= 1.6.7 =

  • Fix: Implemented check for Borlabs minimum version

= 1.6.6 =

  • New: Added option to disable the pixel with a filter add_filter( 'wgact_cookie_prevention', '__return_true' )
  • New: Added Borlabs cookie management approval for marketing
  • Tweak: Refactored the code into classes

= 1.6.5 =

  • Tweak: Removed duplicate noptimize tag
  • Tweak: Removed CDATA fix since it is not necessary anymore with the new conversion tag

= 1.6.4 =

  • Fix: Fixed the calculation for the non-default order total value (which includes tax and shipping)

= 1.6.3 =

  • Info: Tested up to WP 5.4

= 1.6.2 =

  • Tweak: More reliable method to detect the visitor country added

= 1.6.1 =

  • New: Add Cart Data feature
  • New: Added a switch to disable the insertion of the gtag
  • Tweak: Added more descriptions on the settings page
  • Tweak: Code optimisations

= 1.5.5 =

  • Tweak: Made the conversion ID and label validation code more robust

= 1.5.4 =

  • Tweak: Updated function that inserts the settings link on the plugins overview page

= 1.5.3 =

  • Info: Tested up to WP 5.2

= 1.5.2 =

  • Fix: Correctly calculate the value when no filter is active

= 1.5.1 =

  • Tweak: Re-enabled order value filter

= 1.4.17 =

  • Info: Tested up to WP 5.1

= 1.4.16 =

  • Info: Updated a few text strings

= 1.4.15 =

  • Info: Changing name from AdWords to Google Ads

= 1.4.14 =

  • Info: Tested up to WC 3.5.3

= 1.4.13 =

  • Info: Tested up to WC 3.5.2

= 1.4.12 =

  • Tweak: bumping up the WC version

= 1.4.11 =

  • Tweak: remove some debug code
  • fix: properly save the order_total_logic option

= 1.4.10 =

  • Tweak: switched sanitization function to wp_strip_all_tags

= 1.4.9 =

  • Tweak: Added input validation and sanitization
  • Tweak: Added output escaping

= 1.4.8 =

  • Tweak: Added discounts into order value calculation

= 1.4.7 =

  • New: Switched over to the newest version of the AdWords conversion tracking pixel

= 1.4.6 =

  • Tweak: Disabled minification through Autoptimize

= 1.4.5 =

  • Tweak: Order ID back in apostrophes

= 1.4.4 =

  • Tweak: Switched on JavaScript tracking with a fix for the CDATA bug http://core.trac.wordpress.org/ticket/3670
  • Tweak: The correct function is being used to get the currency depending on the WooCommerce version
  • Fix: Added missing noscript tag

= 1.4.3 =

  • Tweak: Remove campaign URL parameter

= 1.4.2 =

  • Fix: Backward compatibility for $order->get_currency()

= 1.4.1 =

  • Tweak: Making the plugin PHP 5.4 backwards compatible
  • Fix: Fixing double counting check logic

= 1.4 =

  • New: Ask kindly for a rating of the plugin
  • New: Add a radio button to use different styles of order total
  • Tweak: Consolidate options into one array
  • Tweak: Code cleanup

= 1.3.6 =

  • New: WordPress 4.8 compatibility update
  • Tweak: Minor text tweak.

= 1.3.5 =

  • Fix: Fixed a syntax error that caused issues on some installations.

= 1.3.4 =

  • Tweak: Added some text output to make debugging for users easier.

= 1.3.3 =

  • Tweak: Refurbishment of the settings page

= 1.3.2 =

  • New: Uninstall routine

= 1.3.1 =

  • New: Keep old deduplication logic in the code as per recommendation by AdWords

= 1.3.0 =

  • New: AdWords native order ID deduplication variable

= 1.2.2 =

  • New: Filter for the conversion value

= 1.2.1 =

  • Fix: wrong conversion value fix

= 1.2 =

  • New: Filter for the conversion value

= 1.1 =

  • Tweak: Code cleanup
  • Tweak: To avoid over reporting only insert the retargeting code for visitors, not shop managers and admins

= 1.0.6 =

  • Tweak: Switching single pixel function from transient to post meta

= 1.0.5 =

  • Fix: Adding session handling to avoid duplications

= 1.0.4 =

  • Fix: Skipping a tag version

= 1.0.3 =

  • Fix: Implement different logic to exclude failed orders as the old one is too restrictive

= 1.0.2 =

  • Fix: Exclude orders where the payment has failed

= 1.0.1 =

  • New: Banner and icon
  • Update: Name change

= 1.0 =

  • Update: Release of version 1.0!

= 0.2.4 =

  • Update: Minor update to the internationalization

= 0.2.3 =

  • Update: Minor update to the internationalization

= 0.2.2 =

  • New: The plugin is now translation ready

= 0.2.1 =

  • Update: Improving plugin security
  • Update: Moved the settings to the submenu of WooCommerce

= 0.2.0 =

  • Update: Further improving cross browser compatibility

= 0.1.9 =

  • Update: Implemented a much better workaround tor the CDATA issue
  • Update: Implemented the new currency field
  • Fix: Corrected the missing slash dot after the order value

= 0.1.8 =

  • Fix: Corrected the plugin source to prevent an error during activation

= 0.1.7 =

  • Significantly improved the database access to evaluate the order value.

= 0.1.6 =

  • Added some PHP code to the tracking tag as recommended by Google.

= 0.1.5 =

  • Added settings field to the plugin page.
  • Visual improvements to the options page.

= 0.1.4 =

  • Changed the woo_foot hook to wp_footer to avoid problems with some themes. This should be more compatible with most themes as long as they use the wp_footer hook.

= 0.1.3 =

  • Changed conversion language to 'en'.

= 0.1.2 =

  • Disabled the check if WooCommerce is running. The check doesn't work properly with multisite WP installations, though the plugin does work with the multisite feature turned on.
  • Added more description in the code to explain why I've build a workaround to not place the tracking code into the thankyou template of WC.

= 0.1.1 =

  • Some minor changes to the code

= 0.1 =

  • This is the initial release of the plugin. There are no known bugs so far.

Make more money from your ads with high-precision tracking