150 euros par mois de budget numérique, pas de trésorier disponible pour gérer une boutique en ligne, et un seul besoin réel : encaisser des dons ponctuels depuis le site vitrine. C’est le cahier des charges reçu d’une association loi 1901 qui gère un refuge animalier, construit sur Elementor gratuit.
Installer WooCommerce pour un unique produit virtuel « don libre » aurait ajouté des tables en base, un tunnel de commande complet, une gestion de stock inutile et une maintenance supplémentaire pour une association qui n’a ni le temps ni le budget de suivre ces mises à jour. Stripe Checkout, en mode hébergé, permet d’éviter tout cela.
Le principe : une session Checkout créée à la volée
Stripe Checkout propose une page de paiement hébergée par Stripe lui-même : aucune donnée bancaire ne transite par le serveur WordPress, ce qui simplifie considérablement la conformité PCI-DSS. Le site n’a besoin que de créer une « session » via l’API Stripe, puis de rediriger le visiteur vers l’URL renvoyée par cette session.
Côté WordPress, cette création de session doit se faire côté serveur (la clé secrète Stripe ne doit jamais apparaître dans le navigateur). Un petit plugin maison expose donc un point de terminaison REST dédié :
add_action( 'rest_api_init', function () {
register_rest_route( 'refuge/v1', '/don', [
'methods' => 'POST',
'callback' => 'refuge_creer_session_stripe',
'permission_callback' => '__return_true',
] );
} );
Le widget HTML : formulaire de montant et appel JavaScript
Dans Elementor, le widget natif HTML accueille un petit formulaire (trois boutons de montants suggérés, plus un champ libre) et le script qui appelle le point de terminaison REST créé précédemment :

fetch('/wp-json/refuge/v1/don', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ montant: montantChoisi })
})
.then(r => r.json())
.then(data => window.location.href = data.url);
Trois lignes suffisent côté client : construire la requête, récupérer l’URL de session renvoyée par le serveur, rediriger le navigateur. Le montant du don reste modifiable par le donateur jusqu’au dernier moment, y compris sur la page Stripe elle-même si l’option submit_type: 'donate' est activée côté API.
Ce que fait la fonction PHP côté serveur
- Valider que le montant reçu est un entier positif raisonnable (borne haute pour éviter les erreurs de saisie à quatre zéros)
- Appeler l’API Stripe (
\Stripe\Checkout\Session::create) avec le montant en centimes et le modepayment - Renvoyer l’URL de session au format JSON, consommée par le
fetchdu widget
Pourquoi éviter WooCommerce dans ce cas précis
WooCommerce reste pertinent dès qu’il existe une notion de panier, de plusieurs produits, ou d’adhésions récurrentes avec des statuts métier à suivre. Ici, aucune de ces conditions n’est réunie : un don est une transaction unique, sans stock, sans facture obligatoire au sens commercial (une association peut émettre un reçu fiscal séparément, hors du champ de cet article).
Conseil maison : pour une association, mieux vaut un widget HTML de trente lignes maintenu par un seul développeur qu’une boutique WooCommerce configurée une fois puis jamais mise à jour faute de compétences en interne.
Sécurité et limites du webhook
La confirmation du paiement ne doit jamais reposer uniquement sur la redirection de succès affichée au donateur : un webhook Stripe (checkout.session.completed) reste indispensable pour déclencher, côté serveur, l’envoi de l’e-mail de remerciement et l’enregistrement du don dans une table dédiée. Sans ce webhook, un donateur qui ferme l’onglet juste après paiement ne recevrait jamais sa confirmation.
La clé secrète Stripe doit être stockée dans une constante définie en dehors de la racine web accessible, via wp-config.php, jamais dans les options de la base de données visibles depuis l’administration.
Notre verdict
Pour une association qui a besoin d’un seul bouton de don, Stripe Checkout branché sur un widget HTML Elementor répond au besoin en une poignée d’heures de développement, sans dette technique liée à une boutique complète jamais réellement exploitée. WooCommerce reste un excellent choix, mais pas pour ce cas d’usage précis.