=== Givoly ===
Contributors: plaidact, tomjanvier
Tags: don, association, stripe, helloasso, collecte de fonds
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 8.1
Stable tag: 1.3.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Formulaires de don pour associations avec Stripe et HelloAsso, gestion des donateurs, campagnes de collecte et emails personnalisables.

== Description ==

**Givoly** est une extension de formulaire de don entièrement gratuite, conçue par et pour les associations. Elle permet de collecter des dons via Stripe et/ou HelloAsso, de gérer les donateurs, de suivre des campagnes de collecte de fonds, et d'envoyer des emails personnalisés aux donateurs.

Le plugin est maintenu par **PLAID·ACT et ses membres**, avec la contribution de **Tom JANVIER**. PLAID·ACT est une association loi 1901 : https://plaidact.org

= Fonctionnalités principales =

* **Formulaires de don via shortcodes**, avec 5 thèmes visuels (Givoly, Classic, Ocean, Sunset, Minimal) et 3 mises en page (Card, Inline, Flat).
* **Paiements Stripe** via Checkout Sessions.
* **Paiements HelloAsso** avec un bouton de paiement dédié utilisant le logo HelloAsso intégré au plugin.
* **Gestion des donateurs** avec historique des dons, montant total donné et détails du dernier don.
* **Campagnes de collecte** avec objectifs, dates, descriptions et barres de progression.
* **Tableau de bord admin** avec statistiques et derniers dons reçus.
* **Emails personnalisables** : expéditeur, logo, couleur, objets, notifications de don, messages de remerciement et modèles de reçu fiscal.
* **Emails de synthèse fiscale annuelle** depuis la page Donateurs, regroupés par exercice fiscal.
* **Envoi de reçus individuel ou groupé**, avec aperçu des destinataires, suivi de la file d'envoi, relances et pièces jointes PDF personnalisables.
* **Exports CSV des dons**, protégés contre l'injection de formules.
* **Aucun traceur ajouté par le plugin** : pas de pixel publicitaire, pas de script d'analyse, pas de télémétrie.

= Shortcodes =

**Formulaire de don**

`[givoly_form]`

Attributs disponibles :

| Attribut | Valeur par défaut | Valeurs possibles |
|---|---|---|
| `theme` | `givoly` | `givoly`, `classic`, `ocean`, `sunset`, `minimal` |
| `layout` | `card` | `card`, `inline`, `flat` |
| `amounts` | `10,25,50,100` | montants entiers séparés par des virgules |
| `currency` | `EUR` | `EUR`, `USD`, `GBP`, `MAD`, `CHF` |
| `campaign` | vide | slug de la campagne |
| `title` | `Make a donation` | texte personnalisé |
| `button_text` | `Donate now` | texte personnalisé |
| `show_title` | `yes` | `yes`, `no` |
| `gateway` | réglage admin | `stripe`, `helloasso` |
| `class` | vide | classe CSS personnalisée ajoutée au conteneur du formulaire |

Pour ajouter des règles CSS à un formulaire, utilisez l'éditeur natif de WordPress
« CSS additionnel » dans Apparence > Personnaliser (ou Apparence > Éditeur > Styles
pour les thèmes basés sur les blocs). Le conteneur du formulaire utilise la classe
`.givoly-wrap` et le plugin ne stocke ni n'exécute de CSS arbitraire.

**Widget de total de campagne**

`[givoly_total campaign="ma-campagne" display="bar"]`

**Bloc de campagne complet (barre de progression + formulaire)**

`[givoly_campaign campaign="ma-campagne"]`

Le shortcode de campagne accepte également `show_title="no"`, `show_form`, `show_description`, `layout` et `theme`.

= Synthèses fiscales annuelles =

Depuis **Givoly > Donateurs**, un panneau d'administration permet de sélectionner un exercice fiscal et d'envoyer un email de synthèse à chaque donateur ayant au moins un don validé sur la période.

Avant l'envoi, complétez les informations de l'association dans **Givoly > Réglages > Organisation** : nom, adresse, email, SIRET/RNA, et informations d'agrément ou de rescrit fiscal. L'email rappelle au donateur le montant total donné, le nombre de dons, et les informations fiscales configurées par l'association.

= Mise en route rapide =

1. Activez le plugin.
2. Rendez-vous dans **Givoly > Réglages**.
3. Configurez au moins un moyen de paiement : Stripe, HelloAsso, ou les deux.
4. Complétez les informations de votre association.
5. Personnalisez les emails si besoin.
6. Ajoutez `[givoly_form]` sur une page ou un article.

== Installation ==

1. Téléversez le dossier `givoly` dans `/wp-content/plugins/`, ou installez l'archive ZIP depuis l'administration WordPress.
2. Activez **Givoly** depuis l'écran des extensions.
3. Configurez vos moyens de paiement dans **Givoly > Réglages**.
4. Publiez un formulaire de don avec `[givoly_form]`.

= Migration depuis Givasso =

Désactivez Givasso avant d'activer Givoly. Au premier chargement, Givoly copie les anciens réglages `givasso_*` ainsi que les tables `givasso_donors`, `givasso_campaigns` et `givasso_donations` vers leurs équivalents `givoly_*`. Les tables d'origine sont conservées comme copie de sécurité, et les anciens shortcodes Givasso restent pris en charge.

== Foire aux questions ==

= Qui développe Givoly ? =

Givoly est développé et maintenu par **PLAID·ACT et ses membres**, avec la contribution de **Tom JANVIER**. PLAID·ACT est une association : https://plaidact.org

= Puis-je utiliser uniquement HelloAsso ou uniquement Stripe ? =

Oui. Activez le moyen de paiement souhaité dans **Givoly > Réglages > Général**. Si Stripe et HelloAsso sont tous deux activés, le formulaire propose les deux options de paiement.

= Où puis-je modifier le logo des emails ? =

Dans **Givoly > Réglages > Email > URL du logo**. Si aucune URL n'est renseignée, le nom de l'association est affiché à la place.

= Le plugin génère-t-il des reçus fiscaux en PDF ? =

Oui. L'outil d'envoi annuel peut joindre une synthèse PDF au format texte à chaque email. Son titre, son contenu, son pied de page et le modèle d'email sont configurables dans **Givoly > Réglages > Email**. Cette synthèse ne remplace pas un reçu fiscal officiel lorsque celui-ci est légalement requis.

= Y a-t-il des fonctionnalités payantes ou des upsells ? =

Non. Cette extension est fournie gratuitement, sans écran de vente additionnelle et sans fonctionnalité premium volontairement verrouillée.

== Confidentialité (RGPD) ==

Givoly collecte les données personnelles nécessaires au traitement et au suivi des dons : nom, adresse email, et champs de profil donateur optionnels. Ces données sont stockées dans la base de données WordPress de l'association et ne sont transmises au prestataire de paiement sélectionné que lorsque cela est nécessaire pour traiter un paiement, rediriger un donateur vers le paiement, traiter un webhook, ou effectuer un remboursement.

Givoly n'ajoute aucun script d'analyse, pixel publicitaire, cookie de suivi ou télémétrie.

== Services externes ==

Givoly fait appel à des services de paiement tiers uniquement lorsqu'un administrateur du site configure et active le moyen de paiement correspondant, et lorsqu'un donateur utilise ce moyen de paiement ou qu'un webhook/remboursement est traité. Les administrateurs du site doivent consulter les conditions d'utilisation et la politique de confidentialité des services qu'ils activent.

**Stripe**

* Service : Stripe est un prestataire de paiement tiers utilisé pour créer des Checkout Sessions, recevoir les événements webhook Stripe, et traiter les remboursements Stripe depuis les écrans d'administration du plugin.
* Points d'accès : `https://api.stripe.com/v1` et les pages Checkout hébergées par Stripe.
* Données envoyées et moment de l'envoi : montant du don, devise, email du donateur, prénom et nom du donateur, métadonnées de campagne, URL de retour, ainsi que la clé secrète Stripe configurée, sont envoyés lorsqu'un donateur démarre un paiement Stripe. Les données des événements webhook sont reçues depuis Stripe après les événements de paiement. Les demandes de remboursement envoient l'identifiant de paiement Stripe concerné lorsqu'un administrateur initie un remboursement.
* Conditions d'utilisation : https://stripe.com/legal
* Politique de confidentialité : https://stripe.com/privacy

**HelloAsso**

* Service : HelloAsso est une plateforme tierce de paiement et de collecte de fonds utilisée pour s'authentifier auprès de l'API HelloAsso, créer des intentions de paiement (checkout intents), rediriger les donateurs vers les pages de paiement HelloAsso, et vérifier les événements webhook HelloAsso. Si l'option d'URL HelloAsso personnalisée de secours est configurée, les donateurs peuvent également être redirigés vers cette URL au lieu de l'intention de paiement via l'API.
* Points d'accès : `https://api.helloasso.com`, `https://api.helloasso-sandbox.com`, `https://www.helloasso.com`, et `https://www.helloasso-sandbox.com`.
* Données envoyées et moment de l'envoi : montant du don, email du donateur, prénom et nom du donateur, métadonnées de campagne, URL de retour, slug de l'organisation, ainsi que les identifiants API HelloAsso configurés, sont envoyés lorsqu'un donateur démarre un paiement via l'API HelloAsso. Les données des événements webhook HelloAsso sont reçues après les événements de paiement. Si l'option d'URL HelloAsso personnalisée est utilisée, le donateur est redirigé vers l'URL configurée par l'administrateur du site.
* Chargement du logo : le bouton de paiement HelloAsso en façade utilise le fichier intégré `assets/logo-ha.svg` ; il ne charge pas le logo HelloAsso depuis une URL distante.
* Conditions d'utilisation : https://www.helloasso.com/cgu-utilisateur
* Politique de confidentialité : https://www.helloasso.com/confidentialite

== Captures d'écran ==

1. Tableau de bord statistiques — vue d'ensemble des dons dans le back office.
2. Gestion des donateurs — historique des dons et détails de chaque donateur.
3. Formulaire de don — exemple d'affichage en façade du site.

== Changelog ==

= 1.3.0 =
* Voir le fichier readme.txt principal pour l'historique complet des versions.
