# Obselling - Compatibility Layer

Ce dossier contient les fichiers de compatibilité avec des plugins tiers.

## Elementor Compatibility

### Fichiers
- `elementor.php` : Gestion PHP de la compatibilité Elementor
- `elementor-compat.js` : Fallback JavaScript pour garantir le comportement

### Fonctionnement

**Approche en 4 niveaux :**

1. **Filtres WooCommerce universels**
   - `woocommerce_get_price_html` : Masque le prix pour tous les systèmes
   - Fonctionne nativement avec Elementor car il utilise `$product->get_price_html()`

2. **Hooks Elementor spécifiques**
   - `elementor/widget/before_render_content` : Cache les widgets Prix et Add to Cart
   - `elementor/widget/render_content` : Remplace le contenu du bouton par "Obsolète"

3. **Classes CSS body**
   - Ajoute `obselling-product-obsolete` et `obselling-elementor-compat`
   - Permet un ciblage CSS/JS précis

4. **Fallback JavaScript**
   - Se déclenche si les hooks PHP échouent
   - Cache/modifie le DOM après rendu
   - Gère le contenu dynamique Elementor

### Widgets Elementor gérés
- `woocommerce-product-price` : Widget Prix
- `woocommerce-product-add-to-cart` : Widget Ajouter au panier
- `woocommerce-product-meta` : Métadonnées (prix masqué si présent)

### Extension future
Pour ajouter la compatibilité avec d'autres page builders, créer un fichier similaire :
- `divi.php` / `divi-compat.js`
- `beaver-builder.php` / `beaver-builder-compat.js`
- etc.


