Skip to content

DOMPurify not defined – jquery.tipTip.min.js - WooCommerce 10.0.4 #60271

@adrienlagrangevergauwen

Description

@adrienlagrangevergauwen

Prerequisites

  • I have carried out troubleshooting steps and I believe I have found a bug.
  • I have searched for similar bugs in both open and closed issues and cannot find a duplicate.

Describe the bug

Since WooCommerce 10.0.4, a JavaScript error prevents product variations from loading properly in both frontend and admin.

The file "woocommerce/assets/js/jquery-tiptip/jquery.tipTip.min.js" is calling DOMPurify.sanitize(...) without first enqueuing the DOMPurify library, which leads to this error: "Uncaught ReferenceError: DOMPurify is not defined"

This affects "Variation tab" in product edit screen (admin).

This bug is reproducible even when using Storefront (or a Storefront child) and no additional plugins.

As a temporary workaround, I manually enqueue DOMPurify using the following code in functions.php (Storefront child theme):

add_action( 'wp_enqueue_scripts', 'fix_missing_dompurify_script' );
add_action( 'admin_enqueue_scripts', 'fix_missing_dompurify_script' );

function fix_missing_dompurify_script() {
    if ( is_product() || is_admin() ) {
        wp_enqueue_script(
            'dompurify',
            'https://cdn.jsdelivr.net/npm/dompurify@2.4.0/dist/purify.min.js',
            array(),
            '2.4.0',
            true
        );
    }
}


Expected behavior

Product variations should load normally in the admin panel (under "Variations" tab) and be selectable on the product page.

There should be no JavaScript error in the console.

Actual behavior

When clicking on the "Variations" tab of a variable product in wp-admin, nothing loads and the spinner keeps rotating.

The browser console shows:

Uncaught ReferenceError: DOMPurify is not defined at jquery.tipTip.min.js:1

This also affects the product page if variation selection uses TipTip tooltips.

Steps to reproduce

  1. Use WooCommerce 10.0.4
  2. Create a variable product
  3. Go to Products > Edit the variable product
  4. Click the "Variations" tab
  5. Observe that nothing loads
  6. Open browser console → see JS error

WordPress Environment

WordPress Environment
System Status Report
### WordPress Environment ###

WordPress address (URL): [Redacted]
Site address (URL): [Redacted]
WC Version: 10.0.4
Legacy REST API Package Version: ✔ 1.0.5
Action Scheduler Version: ✔ 3.9.2
Log Directory Writable: ✔
WP Version: 6.8.2
WP Multisite: –
WP Memory Limit: 256 Mo
WP Debug Mode: –
WP Cron: ✔
Language: fr_FR
External object cache: –

### Server Environment ###

Server Info: Apache/2.4.62 (Debian)
Server Architecture: Linux 5.10.0-33-amd64 x86_64
PHP Version: 8.1.33
PHP Post Max Size: 161 Mo
PHP Time Limit: 60
PHP Max Input Vars: 16384
cURL Version: 7.74.0
OpenSSL/1.1.1w

SUHOSIN Installed: –
MySQL Version: 10.11.11-MariaDB-deb12
Max Upload Size: 160 Mo
Default Timezone is UTC: ✔
fsockopen/cURL: ✔
SoapClient: ✔
DOMDocument: ✔
GZip: ✔
Multibyte String: ✔
Remote Post: ✔
Remote Get: ✔

### Database ###

[REDACTED]

### Post Type Counts ###

attachment: 2218
cpt_slider: 3
custom_css: 1
elementor_library: 23
flamingo_contact: 866
flamingo_inbound: 1249
nav_menu_item: 4
oembed_cache: 4
page: 16
post: 2
product: 160
product_variation: 768
revision: 1321
shop_order: 24
shop_order_refund: 11
tablepress_table: 7
wp_global_styles: 1
wpcf7_contact_form: 1

### Security ###

Secure connection (HTTPS): ✔
Hide errors from visitors: ✔

### Active Plugins (27) ###

Akismet Anti-spam: Spam Protection: par Automattic - Équipe Anti-spam – 5.5
Contact Form 7: par Takayuki Miyoshi – 6.1.1
Elementor Pro: par Elementor.com – 3.31.0
Elementor: par Elementor.com – 3.31.1
Flamingo: par Takayuki Miyoshi – 2.6
Matomo Analytics - Statistiques éthiques. Observations puissantes.: par Matomo – 5.3.1
Mondial Relay - InPost - WordPress: par Rodolphe Cazemajou-Tournié – 5.3
Really Simple Security: par Really Simple Security – 9.4.3
Regenerate Thumbnails: par Alex Mills (Viper007Bond) – 3.1.6
Storefront Footer Text: par Wooassist – 1.0.1
TablePress: par Tobias Bäthge – 3.1.3
UpdraftPlus - Backup/Restore: par TeamUpdraft
DavidAnderson – 2.25.6.26

Use Any Font: par Dnesscarkey – 6.3.13
White Label CMS: par www.videousermanuals.com – 2.7.8
WooCommerce Stripe Gateway: par Stripe – 9.7.1
WooCommerce Legacy REST API: par WooCommerce – 1.0.5
WP Menu Cart: par WP Overnight – 2.14.11
PDF Invoices & Packing Slips for WooCommerce: par WP Overnight – 4.6.2
WooCommerce Tax: par WooCommerce – 3.0.7
WooCommerce: par Automattic – 10.0.4
Wordfence Security: par Wordfence – 8.0.5
Yoast SEO: par L’équipe Yoast – 25.6
WP CLI Login Command Server: par Evan Mattson – 1.3
WP Fastest Cache: par Emre Vona – 1.3.8
WP Google Fonts: par Noah Kagan – 3.1.5
WP Mail Logging: par WP Mail Logging Team – 1.14.0
WP Mail SMTP: par WP Mail SMTP – 4.4.0

### Inactive Plugins (5) ###

BackUpWordPress: par XIBO Ltd – 3.14
Google Analytics for WordPress by MonsterInsights: par MonsterInsights – 9.7.0
Solid Security Basic: par SolidWP – 9.3.10
WooCommerce Checkout Manager: par QuadLayers – 7.7.5
WP-Optimize - Clean, Compress, Cache: par TeamUpdraft
DavidAnderson – 4.2.4


### Settings ###

Legacy API Enabled: ✔
Force SSL: –
Currency: EUR (€)
Currency Position: right
Thousand Separator: ,
Decimal Separator: .
Number of Decimals: 2
Taxonomies: Product Types: external (external)
grouped (grouped)
simple (simple)
variable (variable)

Taxonomies: Product Visibility: exclude-from-catalog (exclude-from-catalog)
exclude-from-search (exclude-from-search)
featured (featured)
outofstock (outofstock)
rated-1 (rated-1)
rated-2 (rated-2)
rated-3 (rated-3)
rated-4 (rated-4)
rated-5 (rated-5)

Connected to WooCommerce.com: –
Enforce Approved Product Download Directories: –
HPOS feature enabled: –
Order datastore: WC_Order_Data_Store_CPT
HPOS data sync enabled: –
Enabled Features: analytics
marketplace
order_attribution
site_visibility_badge
remote_logging
email_improvements
blueprint
point_of_sale


### Logging ###

Enabled: ✔
Handler: Automattic\WooCommerce\Internal\Admin\Logging\LogHandlerFileV2
Retention period: 30 jours
Level threshold: –
Log directory size: 66 Ko

### WC Pages ###

Base de la boutique: #805 - /boutique-pret-a-porter-vetements-marin-et-city/
Panier: #11 - /mon-panier/ -  Contient le code court woocommerce_cart
Commander: #12 - /paiement/ -  Contient le code court woocommerce_checkout
Mon compte: #13 - /my-account/ -  Contient le code court [woocommerce_my_account]
Conditions générales de vente et d’utilisation: #2787 - /conditions-generales-de-ventes/

### Theme ###

Name: Storefront Enfant par WP Marmite
Version: 1.0
Author URL: https://wpmarmite.com
Child Theme: ✔
Parent Theme Name: Storefront
Parent Theme Version: 4.6.1
Parent Theme Author URL: https://woocommerce.com/
Theme type: Thème classique
WooCommerce Support: ✔

### Templates ###

Overrides: –

### WooCommerce Stripe Payment Gateway ###

Version: 9.7.1
Account ID: acct_1HC39OBnWdtLJEDP
Account Email: boutiqueleffetmerbymarine@gmail.com
Test Mode Enabled: ✔
					Non
OAuth Connected: Non
Sync Enabled: Non
Legacy Checkout Experience: ✔
					Non
Enabled Payment Methods: card
Express Checkout: Désactivée
Auth and Capture: ✔
					Oui
Logging: Non

### Admin ###

Enabled Features: activity-panels
analytics
product-block-editor
coupons
core-profiler
customize-store
customer-effort-score-tracks
import-products-task
experimental-fashion-sample-products
shipping-smart-defaults
shipping-setting-tour
homescreen
marketing
mobile-app-banner
onboarding
onboarding-tasks
pattern-toolkit-full-composability
product-custom-fields
remote-inbox-notifications
remote-free-extensions
payment-gateway-suggestions
printful
shipping-label-banner
subscriptions
store-alerts
transient-notices
woo-mobile-welcome
wc-pay-promotion
wc-pay-welcome-page
launch-your-store
add-to-cart-with-options-stepper-layout

Disabled Features: product-data-views
experimental-blocks
experimental-iapi-mini-cart
experimental-iapi-runtime
coming-soon-newsletter-template
minified-js
product-pre-publish-modal
settings
async-product-editor-category-field
product-editor-template-system
use-wp-horizon

Daily Cron: ✔ Next scheduled: 2025-08-08 20:22:32 +01:00
Options: ✔
Notes: 203
Onboarding: completed

### Action Scheduler ###

Terminé: 326
Oldest: 2025-07-08 13:24:21 +0000
Newest: 2025-08-08 06:19:36 +0000

Échoué: 697
Oldest: 2020-04-15 08:38:02 +0000
Newest: 2025-08-03 21:12:15 +0000

En attente: 6
Oldest: 2025-08-08 14:48:23 +0000
Newest: 2025-12-31 23:00:01 +0000


### Status report information ###

Generated at: 2025-08-08 13:51:15 +01:00

Isolating the problem

  • I have deactivated other plugins and confirmed this bug occurs when only WooCommerce plugin is active.
  • This bug happens with a default WordPress theme active, or Storefront.
  • I can reproduce this bug consistently using the steps above.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions