# 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.

- Auteur : WordPress Développement
- Publié le : 2020-10-15
- Mis à jour le : 2020-10-15
- Catégorie : Thèmes
- URL : https://www.wpmoderne.fr/themes/theme-associatif-bouton-don-stripe/

## L’essentiel

- 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

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.
