Le WordPress d'aujourd'hui, décodé pour les développeurs

Thèmes

Thème vitrine associatif : un bouton de don Stripe sans plugin e-commerce

Une association loi 1901 veut collecter des dons en ligne sans installer WooCommerce pour un seul formulaire. Intégration pas à pas de Stripe Checkout dans un template de page du thème.

Par WordPress Développement • 15 octobre 2020 • 4 min de lecture • Aucun commentaire
Thème vitrine associatif : un bouton de don Stripe sans plugin e-commerce

Comment collecter des dons en ligne pour une association loi 1901 sans transformer son site vitrine en boutique en ligne ? La question s’est posée sur un projet de refonte pour une association d’aide alimentaire locale : un seul besoin, un bouton « Faire un don », et surtout aucune envie d’installer WooCommerce avec son catalogue de produits, ses commandes et sa configuration fiscale, pour gérer un unique formulaire de paiement.

Stripe Checkout, la page de paiement hébergée par Stripe, permet justement ce genre d’intégration minimaliste : le site ne stocke ni ne manipule jamais de donnée bancaire, il se contente de créer une session de paiement et de rediriger le visiteur vers la page sécurisée de Stripe. Voici comment ce bouton a été intégré directement dans un template de page du thème, étape par étape.

Étape 1 : installer le SDK Stripe côté thème

Le SDK PHP de Stripe s’installe via Composer, dans le dossier du thème plutôt qu’à la racine de WordPress, pour garder cette dépendance isolée et facile à retirer si l’association change un jour de prestataire de paiement :

cd wp-content/themes/mon-theme
composer require stripe/stripe-php

L’autoload généré par Composer est ensuite chargé depuis functions.php :

require_once get_stylesheet_directory() . '/vendor/autoload.php';
\Stripe\Stripe::setApiKey( getenv( 'STRIPE_SECRET_KEY' ) );

Étape 2 : créer un template de page dédié

Un template page-don.php affiche le contenu explicatif de la page (rédigé par l’association) puis un formulaire minimal qui déclenche la création de la session Stripe côté serveur :

<?php
/* Template Name: Faire un don */
get_header();
the_content();
?>
<form method="post" action="<?php echo esc_url( home_url( '/creer-session-don/' ) ); ?>">
    <label for="montant">Montant du don (en euros)</label>
    <input type="number" id="montant" name="montant" min="5" step="1" value="20">
    <button type="submit">Faire un don</button>
</form>
<?php get_footer(); ?>
L'essentiel à retenir : Stripe Checkout hébergé, aucune donnée bancaire ne transite par le site ; Un seul template de page suffit, pas de boutique complète ; Montants libres et prédéfinis gérés côté Stripe

Étape 3 : générer la session côté serveur

Un point d’entrée dédié, déclaré via add_rewrite_rule, reçoit le montant saisi et crée la session Stripe Checkout correspondante :

add_action( 'template_redirect', function() {
    if ( ! isset( $_POST['montant'] ) || ! is_page( 'don' ) ) {
        return;
    }
    $montant_centimes = absint( $_POST['montant'] ) * 100;

    $session = \Stripe\Checkout\Session::create( array(
        'payment_method_types' => array( 'card' ),
        'line_items' => array( array(
            'price_data' => array(
                'currency' => 'eur',
                'product_data' => array( 'name' => 'Don à l\'association' ),
                'unit_amount' => $montant_centimes,
            ),
            'quantity' => 1,
        ) ),
        'mode' => 'payment',
        'success_url' => home_url( '/merci-pour-votre-don/' ),
        'cancel_url' => home_url( '/don/' ),
    ) );

    wp_redirect( $session->url, 303 );
    exit;
} );

Le visiteur est redirigé vers la page Stripe hébergée, saisit sa carte directement sur l’infrastructure de Stripe, puis revient sur le site via l’URL de succès définie plus haut.

Montants libres et prédéfinis

Le champ numérique du formulaire peut être remplacé par des boutons radio proposant des montants suggérés (10, 20, 50 euros) plus un champ libre, ce qui augmente en général le montant moyen des dons par rapport à un simple champ vide. Cette liste de montants reste éditable directement dans le template, sans dépendre d’un réglage d’administration supplémentaire :

  • Montants suggérés : 10 €, 20 €, 50 €.
  • Champ libre pour un montant personnalisé, avec un minimum fixé à 5 € côté serveur (pas seulement côté formulaire).
  • Aucun compte utilisateur requis pour faire un don, contrairement à un tunnel WooCommerce classique.

Reçu fiscal et suivi des dons

Ce tutoriel s’arrête volontairement à la confirmation du paiement. La génération du reçu fiscal (Cerfa 11580) et le suivi comptable des dons pour la déclaration annuelle de l’association relèvent d’un processus distinct, généralement géré par le trésorier via l’export des paiements réussis depuis le tableau de bord Stripe.

En résumé

Pour un besoin de paiement isolé comme un bouton de don associatif, Stripe Checkout intégré directement dans un template de thème apporte l’essentiel (sécurité, simplicité, aucune donnée bancaire stockée) sans la complexité d’une boutique WooCommerce complète installée pour un seul usage.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Partager :

À propos de l'auteur

WordPress Développement

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi