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

Blocs Gutenberg

Bloc pour association : reçu fiscal généré dynamiquement depuis un CPT don

Un bloc dynamique qui génère un reçu fiscal PDF à partir d'un type de contenu personnalisé « don », pensé pour une petite association sans service compta dédié.

Par WordPress Développement • 31 janvier 2022 • 4 min de lecture • Aucun commentaire
Bloc pour association : reçu fiscal généré dynamiquement depuis un CPT don

Trente-deux reçus fiscaux à préparer à la main chaque fin d’année : c’est le problème rapporté par la trésorière d’une petite association culturelle, qui utilisait jusque-là un modèle Word rempli manuellement pour chaque don reçu via le site. Le type de contenu personnalisé don, déjà utilisé pour enregistrer les dons ponctuels, contenait toutes les données nécessaires — il ne manquait qu’un bloc capable de les transformer en document.

La solution retenue génère le reçu au format PDF à la demande, directement depuis la fiche du don dans l’administration, avec un bouton dans le bloc dédié plutôt qu’un export manuel recopié dans un traitement de texte.

Le problème : des données présentes, mais jamais mises en forme

Chaque don créait déjà un article du type don, avec des champs personnalisés pour le montant, la date, le nom et l’adresse du donateur. Ces données existaient, mais rien ne les transformait en document conforme au modèle Cerfa n° 11580 attendu par l’administration fiscale pour justifier une réduction d’impôt.

Choisir une librairie de génération PDF adaptée à l’hébergement

Sur un hébergement mutualisé classique, sans accès à des binaires externes comme wkhtmltopdf, la librairie PHP dompdf reste un choix pragmatique : elle s’installe via Composer, ne nécessite aucune extension serveur particulière, et transforme un gabarit HTML/CSS simple en document PDF.

composer require dompdf/dompdf
L'essentiel à retenir : Génération du reçu déclenchée à la confirmation du don ; Modèle Cerfa recréé en PDF avec les champs obligatoires ; Numérotation séquentielle des reçus conservée en option

Le snippet de génération

Le bloc affiche un bouton « Générer le reçu » dans le panneau latéral de l’article don. Au clic, une requête déclenche une action admin qui construit le PDF à partir d’un gabarit HTML reprenant les mentions obligatoires du Cerfa.

use Dompdf\Dompdf;

function wpmoderne_generer_recu_don( $don_id ) {
    $montant   = get_field( 'montant', $don_id );
    $donateur  = get_field( 'nom_donateur', $don_id );
    $date_don  = get_field( 'date_don', $don_id );
    $numero    = wpmoderne_prochain_numero_recu();

    $html = sprintf(
        '<h1>Reçu de don n° %1$s</h1>
        <p>Association Les Ateliers du Fleuve, reconnue d\'intérêt général.</p>
        <p>Reçu par : %2$s</p>
        <p>Montant du don : %3$s €</p>
        <p>Date du don : %4$s</p>
        <p>Ce reçu est établi conformément à l\'article 200 du Code général des impôts.</p>',
        esc_html( $numero ), esc_html( $donateur ), esc_html( $montant ), esc_html( $date_don )
    );

    $dompdf = new Dompdf();
    $dompdf->loadHtml( $html );
    $dompdf->setPaper( 'A4' );
    $dompdf->render();

    update_post_meta( $don_id, 'numero_recu', $numero );
    file_put_contents(
        wp_upload_dir()['path'] . "/recu-{$numero}.pdf",
        $dompdf->output()
    );
}

Numéroter les reçus sans doublon

La numérotation séquentielle des reçus, bien que non strictement obligatoire pour ce type de don, facilite grandement le suivi comptable de l’association. Un compteur stocké en option WordPress, incrémenté à chaque génération, évite les doublons même en cas de génération répétée du même reçu :

function wpmoderne_prochain_numero_recu() {
    $numero = (int) get_option( 'wpmoderne_dernier_numero_recu', 0 ) + 1;
    update_option( 'wpmoderne_dernier_numero_recu', $numero );
    return str_pad( $numero, 5, '0', STR_PAD_LEFT );
}

Variantes possibles selon les besoins

  • Envoi automatique du reçu par e-mail au donateur, via wp_mail(), en pièce jointe, dès la confirmation du paiement.
  • Archivage systématique des reçus générés dans un dossier protégé, non accessible directement par URL, pour respecter la confidentialité des données du donateur.
  • Génération groupée en fin d’année pour l’ensemble des dons de la période, utile pour les associations qui préfèrent un envoi unique plutôt qu’un envoi au fil de l’eau.

Ce que cet article ne couvre pas

La déclaration fiscale de l’association elle-même, ses obligations déclaratives annuelles auprès de l’administration, ne relèvent pas de ce bloc technique et demandent un accompagnement comptable dédié. La comptabilité complète de l’association, avec suivi des dépenses et bilan annuel, sort également très largement du périmètre de cette génération de reçus.

Pour aller plus loin

Ce type de bloc illustre bien l’intérêt d’un type de contenu personnalisé déjà en place : une fois les données structurées correctement dès la saisie du don, leur transformation en document devient un problème de mise en forme, pas de collecte. Le gain de temps pour une petite association bénévole reste considérable face à une saisie manuelle répétée chaque année.

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