WP Manifestindependent plugin directory
manifest / ecommerce / st404-woo-abandoned-cart-recovery

ST404 Woo Abandoned Cart Recovery WP Registry grade B. Medium-severity findings · 2 findingsWP RegistryMedium-severity findings · 2 findingsOpen the reportB

Plugin WordPress pour récupérer les paniers abandonnés WooCommerce avec envoi d'emails automatiques

★ 0stars
26release downloads
1.8.36latest · 10mo ago

Install

Download st404-woo-abandoned-cart-recovery-1.8.36.zip From the 1.8.36 release on GitHub, Jan 5, 2026

Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/lestudio404/st404-woo-abandoned-cart-recovery/releases/download/1.8.36/st404-woo-abandoned-cart-recovery-1.8.36.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Plugin Paniers Abandonnés - WooCommerce

Un plugin WordPress simple et efficace pour récupérer les paniers abandonnés avec envoi d'emails automatiques.

🚀 Fonctionnalités

📧 Système d'emails automatiques

  • Deux emails de rappel configurables
  • Délais personnalisables (minutes, heures, jours)
  • Éditeur WYSIWYG pour le contenu des emails
  • Variables dynamiques : nom client, articles, total, lien de récupération

👥 Gestion des utilisateurs

  • Exclusion de rôles : choisissez quels rôles ne recevront pas d'emails
  • Support clients invités et connectés
  • Suivi par email pour les utilisateurs non connectés

📊 Interface d'administration moderne

  • Tableau de bord avec statistiques en temps réel
  • Liste des paniers abandonnés avec pagination
  • Actions rapides : marquer comme récupéré, supprimer
  • Design responsive et moderne

⚙️ Configuration complète

  • Nom et email de l'expéditeur personnalisables
  • Délais d'envoi flexibles pour chaque email
  • Contenu HTML riche avec variables dynamiques
  • Sauvegarde AJAX sans rechargement de page

📋 Prérequis

  • WordPress 5.0 ou supérieur
  • WooCommerce 5.0 ou supérieur
  • PHP 7.4 ou supérieur

🔧 Installation

  1. Téléchargez le plugin dans le dossier /wp-content/plugins/ de votre WordPress
  2. Activez le plugin depuis l'administration WordPress
  3. Configurez les réglages dans "Paniers Abandonnés > Réglages"
  4. Testez en ajoutant des produits au panier puis en abandonnant

🎯 Utilisation

Configuration initiale

  1. Allez dans Paniers Abandonnés > Réglages
  2. Configurez l'expéditeur des emails
  3. Sélectionnez les rôles à exclure des rappels
  4. Personnalisez les deux emails de rappel :
    • Délai d'envoi
    • Objet de l'email
    • Contenu avec variables

Variables disponibles

Dans le contenu des emails, vous pouvez utiliser ces variables :

  • {customer_name} - Nom du client
  • {cart_items} - Liste des articles du panier
  • {cart_total} - Total du panier formaté
  • {cart_url} - Lien pour récupérer le panier
  • {site_name} - Nom du site

Surveillance des paniers

  1. Consultez Paniers Abandonnés pour voir tous les paniers
  2. Statistiques en temps réel :
    • Total des paniers
    • Montant récupérable
    • Montant déjà récupéré
  3. Actions disponibles :
    • Marquer comme récupéré
    • Supprimer un panier
    • Voir les emails envoyés

🔄 Fonctionnement technique

Détection des paniers abandonnés

  • Hook WooCommerce : woocommerce_cart_updated
  • Sauvegarde automatique des paniers non vides
  • Support clients connectés et invités

Envoi des emails

  • Cron WordPress toutes les heures
  • Vérification des délais configurés
  • Exclusion des rôles sélectionnés
  • Suivi des envois dans la base de données

Récupération des paniers

  • Hook WooCommerce : woocommerce_checkout_order_processed
  • Marquage automatique comme récupéré
  • Lien de récupération dans les emails

📊 Base de données

Le plugin crée une table wp_abandoned_carts avec :

  • id - Identifiant unique
  • user_id - ID utilisateur (optionnel)
  • user_email - Email du client
  • user_name - Nom du client
  • cart_data - Données du panier (JSON)
  • cart_total - Total du panier
  • created_at - Date de création
  • updated_at - Date de mise à jour
  • first_email_sent - Date premier email
  • second_email_sent - Date deuxième email
  • recovered_at - Date de récupération

🎨 Personnalisation

Styles CSS

Le plugin utilise des styles CSS modernes avec :

  • Gradients pour les cartes de statistiques
  • Animations pour les interactions
  • Design responsive pour tous les écrans
  • Couleurs cohérentes avec WordPress

JavaScript

  • AJAX pour les interactions sans rechargement
  • Validation côté client
  • Feedback visuel pour les actions
  • Pagination dynamique

🔒 Sécurité

  • Nonces WordPress pour toutes les actions AJAX
  • Vérification des permissions utilisateur
  • Sanitisation des données d'entrée
  • Échappement des données de sortie

🐛 Dépannage

Les emails ne s'envoient pas

  1. Vérifiez la configuration SMTP de WordPress
  2. Testez avec un plugin d'email comme WP Mail SMTP
  3. Vérifiez les logs d'erreur WordPress

Les paniers ne sont pas détectés

  1. Assurez-vous que WooCommerce est actif
  2. Vérifiez que les hooks WooCommerce fonctionnent
  3. Testez avec un client connecté et un client invité

Problèmes d'affichage

  1. Vérifiez la compatibilité du thème
  2. Désactivez les plugins de cache
  3. Testez avec un thème par défaut

📈 Statistiques et performances

Optimisations incluses

  • Indexation de la base de données
  • Pagination pour les grandes listes
  • Requêtes optimisées avec LIMIT/OFFSET
  • Cache des rôles utilisateur

Monitoring recommandé

  • Surveillez la taille de la table wp_abandoned_carts
  • Vérifiez les logs du cron WordPress
  • Testez régulièrement l'envoi d'emails

🔄 Mises à jour

Version 1.0.0

  • ✅ Fonctionnalités de base
  • ✅ Interface d'administration
  • ✅ Système d'emails
  • ✅ Configuration complète

Prochaines versions prévues

  • 📅 Rapports et analytics
  • 📅 Templates d'emails prédéfinis
  • 📅 Intégration avec d'autres plugins
  • 📅 API REST pour développeurs

🤝 Support

Pour toute question ou problème :

  1. Consultez cette documentation
  2. Vérifiez les logs d'erreur WordPress
  3. Testez avec un thème par défaut
  4. Contactez le développeur

📄 Licence

Ce plugin est distribué sous licence GPL v2 ou ultérieure.


Développé avec ❤️ pour WooCommerce

Releases

9 releases. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
1.8.36 latest
Jan 5, 2026 10mo ago
st404-woo-abandoned-cart-recovery-1.8.36.zip
9
Nov 28, 2025 11mo ago
st404-woo-abandoned-cart-recovery-1.8.35.zip
5
Nov 28, 2025 11mo ago
st404-woo-abandoned-cart-recovery-1.8.34.zip
1
Nov 28, 2025 11mo ago
st404-woo-abandoned-cart-recovery-1.8.33.zip
1
Nov 28, 2025 11mo ago
st404-woo-abandoned-cart-recovery-1.8.32.zip
2
Nov 28, 2025 11mo ago
st404-woo-abandoned-cart-recovery-1.8.31.zip
4
Nov 28, 2025 11mo ago
st404-woo-abandoned-cart-recovery-1.8.30.zip
2
Nov 28, 2025 11mo ago
st404-woo-abandoned-cart-recovery-1.8.29.zip
1
Nov 28, 2025 11mo ago
st404-woo-abandoned-cart-recovery-1.8.28.zip
1
B grade

Security

ST404 Woo Abandoned Cart Recovery 1.8.36 · audited by WP Registry

Medium-severity findings.

1 medium 1 low
Audited release
1.8.36
Findings
2
Worst severity
medium
Content hash
198f95a047954a4fe7a9a170…

Findings

  • medium IDOR in GDPR export/deletion/consent AJAX handlers: any email's abandoned-cart data can be read or deleted

    missing_auth

    handle_data_export (wp_ajax_acr_data_export, any logged-in user), handle_data_deletion (wp_ajax_acr_data_deletion, any logged-in user) and handle_consent_management (wp_ajax_ and wp_ajax_nopriv_acr_consent_management) take an arbitrary 'email' POST parameter and respectively return every abandoned_carts row for that address (email, name, user_id, full cart_data, totals, GDPR consent IP/date), delete all of them, or flip consent/unsubscribe flags. The only gate is check_ajax_referer('acr_gdpr_nonce'); there is no capability check and no proof that the caller owns the email (the per-email 'acr_gdpr_'.$email nonce used in email links is not checked here). In this build the generic acr_gdpr_nonce is only emitted by render_gdpr_page(), which is not currently registered as a shortcode, which limits practical exploitation; any page that renders it (re-enabling the GDPR page) would let any Customer read/delete every other customer's abandoned-cart data and let unauthenticated visitors change consent for any address. get_client_ip() also trusts spoofable HTTP_CLIENT_IP/X-Forwarded-For for the recorded consent IP.

    abandoned-cart-recovery.php:100-103, 2419-2499

    Recommendation

    Bind every GDPR action to proof of ownership: require the per-email signed token (an HMAC of email + expiry, not a 24h nonce) delivered by email, or for logged-in users restrict to their own user_email. Remove the unused generic acr_gdpr_nonce path and do not trust client-supplied IP headers.

  • low Unauthenticated unsubscribe of any email address via GET (nonce in link ignored)

    missing_nonce

    handle_gdpr_actions() runs on init for every request and, when ?acr_action=unsubscribe&email=<addr> is present, calls handle_unsubscribe() which sets gdpr_unsubscribed=1 for all rows of that email. The 'nonce' parameter included in the emailed {unsubscribe_url} is never verified (comment: 'sans vérification nonce pour éviter les expirations'), so anyone can silently opt any customer out of recovery emails.

    abandoned-cart-recovery.php:106, 2594-2620

    Recommendation

    Include a non-expiring HMAC token (e.g. hash_hmac over the email with wp_salt) in the unsubscribe link and verify it with hash_equals before updating.

WP Registry hashes the installable build and reports on that exact bytes-for-bytes copy. Embargoed findings are withheld until they are disclosed, so a clean verdict means nothing public is outstanding. WP Manifest does not audit code itself.