Documentation Charitable

Apprenez à tirer le meilleur parti de Charitable grâce à des instructions claires, étape par étape.

Charitable Ambassadors : Comment les données d'invitation sont stockées

Requis : Charitable Pro 1.8.16+
Charitable Ambassadors 3.0.0+

La fonctionnalité Invitations utilise une petite table de base de données personnalisée pour stocker les jetons uniques qui alimentent les URL d’invitation de vos ambassadeurs. Cette page explique où se trouve cette table, quand elle est créée, ce qu’elle contient et ce qui se passe si elle disparaît.

Si vous n’avez jamais réfléchi à la base de données de votre site auparavant, en bref : il s’agit d’une petite table bien gérée que le plugin gère automatiquement. Le reste de cette page est destiné aux cas où quelque chose d’inhabituel se produit (une mise à niveau a mal tourné, une sauvegarde ne s’est pas restaurée correctement, un administrateur demande « quelles données cette fonctionnalité stocke-t-elle ? ») et que vous avez besoin de connaître les détails.

La version courte

QuestionRéponse
Qu’est-ce qui est stocké ?Une ligne par jeton d’invitation. Chaque ligne contient la chaîne du jeton, l’ID utilisateur de l’invitant, un ID de campagne facultatif, une date de création, une date de révocation (si révoquée), un nombre de vues et un nombre de réclamations.
Où est-ce stocké ?Dans une table personnalisée nommée <wp_prefix>charitable_ambassadors_invite_tokens (par exemple, wp_charitable_ambassadors_invite_tokens).
Quand la table est-elle créée ?La première fois que vous activez les Invitations sur la page d’administration. Jusqu’alors, la table n’existe pas.
Des données personnelles sont-elles stockées ?Non – juste l’ID utilisateur WordPress de l’invitant. Pas de noms, pas d’e-mails, pas d’adresses IP.

Quand la table est créée

Jusqu’à ce que vous activiez les Invitations, la table personnalisée n’existe pas – la fonctionnalité est entièrement facultative. La première fois que vous activez Activer les invitations dans Charitable > Ambassadeurs > Invitations, vous verrez une modale de confirmation unique expliquant ce qui va se passer :

« L’activation des Invitations créera une nouvelle table de base de données pour stocker les jetons d’invitation. La table est petite et utilisée uniquement par la fonctionnalité Invitations. Continuer ? »

Confirmez, et la table est créée via l’utilitaire standard dbDelta() de WordPress (le même mécanisme que tous les plugins utilisent pour gérer les tables personnalisées en toute sécurité). Le schéma est reconstruit de manière idempotente – si la table existe déjà, dbDelta() n’émet que les instructions ALTER dont il a réellement besoin.

Une ligne est également écrite dans wp_options :

charitable_ambassadors_invites_schema_version = '1.0'

C’est ainsi que le plugin sait à quelle version du schéma correspond votre table, afin que les futures mises à niveau puissent migrer proprement.

Ce qu’il y a dans la table

La table a huit colonnes – pas d’informations personnelles identifiables, pas de montants de dons, rien que l’invitant ne voit pas déjà sur sa propre page Mes campagnes :

ColonneCe qu’elle stocke
idClé primaire auto-incrémentée.
tokenLa chaîne unique qui apparaît dans l’URL. 16 caractères, alphanumériques.
user_idL’ID utilisateur WordPress de l’invitant.
id_campagne(Facultatif) Un ID de campagne parent, lorsque le jeton est limité à une cause spécifique.
created_atQuand le jeton a été généré pour la première fois.
révoqué_àLes quatre états d'auto-vérification
nombre_de_vuesNombre de fois que quelqu'un a cliqué sur l'URL de ce jeton.
nombre_de_réclamationsNombre de recrues qui se sont inscrites avec succès via ce jeton.

C'est tout. Pas d'e-mails, pas d'adresses IP, pas d'empreintes digitales de navigateur. L'invitant et le destinataire sont tous deux protégés.

Comment la table est utilisée

Trois choses se produisent avec cette table en fonctionnement normal :

  1. Création de jeton – la première fois qu'un ambassadeur éligible accède à Mes campagnes avec Invitations activé, une ligne de jeton est créée pour lui (et une ligne supplémentaire pour chaque campagne parente qu'il possède).
  2. Résolution de clic – lorsqu'une personne clique sur une URL d'invitation, le gestionnaire d'URL recherche le jeton pour trouver l'invitant.
  3. Compteurs – nombre_de_vues est incrémenté à chaque clic ; nombre_de_réclamations est incrémenté lorsqu'une recrue est attribuée avec succès.

C'est tout le cycle de vie. Il n'y a pas de traitement en arrière-plan, pas de tâches planifiées, pas de synchronisation avec des services externes.

Les quatre états d'auto-vérification

L'onglet d'administration des Invitations dispose d'une bannière d'auto-vérification qui détecte les rares moments où quelque chose ne va pas :

Une bannière d'auto-vérification indiquant que les Invitations sont activées mais que la table de base de données est manquante, avec un bouton Recréer la table
Vous verrezCe qui ne va pasQue faire
Rouge : « Activé mais la table de base de données est manquante »Une mise à jour de plugin, un nettoyage manuel de la base de données ou une restauration de sauvegarde a supprimé la table alors que le paramètre est resté activé.Cliquez sur Recréer la table – le schéma est reconstruit sur place. Aucune perte de données pour les nouveaux clics ; les anciens jetons sont perdus.
Jaune : « Schéma obsolète »Une future mise à niveau a introduit un schéma plus récent ; votre installation n'a pas encore migré.Cliquez sur Exécuter la mise à niveau. La migration est sûre et idempotente.
Bleu : « Désactivé mais des données existent »Vous avez désactivé la fonctionnalité mais la table est toujours là avec des lignes de jetons dedans.Soit Réactiver (les données reprennent leur utilisation), soit Supprimer définitivement et retirer la table (les données sont perdues à jamais).
Bleu : « Compatibilité cache désactivée »Un plugin de cache peut mettre en cache votre page de destination d'invitation, ce qui pourrait casser l'attribution.Activez la Compatibilité cache sous Charitable > Paramètres > Avancé > Divers.

L'auto-vérification s'exécute à chaque visite de l'onglet Invitations et dans Outils de bienfaisance > Infos sur le site. C'est ainsi que vous découvrez les problèmes de table avant qu'ils n'affectent vos clients.

Désactivation de la fonctionnalité (Désactivation douce)

Si vous décidez que les Invitations ne conviennent pas à votre programme, Désactivez les Invitations en haut de l'onglet administrateur :

  • Le commutateur bascule sur désactivé.
  • Le shortcode cesse de s'afficher sur la page de destination (ou affiche l'aperçu administrateur lorsqu'un administrateur la consulte).
  • La carte de recrutement cesse d'apparaître sur Mes campagnes.
  • Le gestionnaire d'URL cesse de traiter les clics ?charitable-invite=....
  • La table reste. L'historique des jetons est conservé afin que vous puissiez le réactiver ultérieurement sans le perdre.

Ceci est réversible – réactivez à tout moment et les jetons existants reprendront leur fonctionnement.

Suppression définitive des données (Désinstallation complète)

Si vous souhaitez que les données soient supprimées – par exemple, pour la conformité RGPD ou parce que vous avez décidé de ne plus jamais utiliser les Invitations – utilisez Supprimer définitivement et supprimer la table en bas de l'onglet Invitations :

La modale de confirmation de désinstallation destructive, demandant à l'administrateur de taper le nom de la table pour confirmer

Le flux destructeur est intentionnellement en plusieurs étapes :

  1. Cliquez sur Supprimer définitivement et supprimer la table.
  2. Une modale de confirmation vous demande de taper le nom de la table (par exemple, wp_charitable_ambassadors_invite_tokens) pour confirmer.
  3. Soumettre. La table est supprimée, l'option _schema_version est supprimée, le paramètre invites_enabled est désactivé.
  4. L'action est enregistrée dans Outils de bienfaisance > Journal avec l'ID utilisateur du modérateur.

C'est une porte à sens unique. La prochaine fois que vous activerez les Invitations, une nouvelle table sera créée avec zéro ligne.

Ce qui se passe lors d'une exportation / sauvegarde

La table est une table MySQL ordinaire dans votre base de données WordPress. Tout outil qui sauvegarde les bases de données WordPress (UpdraftPlus, BackupBuddy, mysqldump, les sauvegardes automatiques de votre hébergeur) l'inclut automatiquement. Les restaurations fonctionnent de la même manière – ramenez la base de données, la table vient avec elle.

Ce qui se passe lors d'une exportation de données personnelles

L'outil d'exportation de données personnelles de WordPress exporte les données du compte WordPress de l'utilisateur. La table des Invitations stocke des références user_id, donc les jetons d'invitation d'un utilisateur sont inclus dans leur exportation de données personnelles (chaînes de jetons + décompte des vues/réclamations). Aucune donnée personnelle identifiable au-delà de l'ID utilisateur ne se trouve dans la table.

Conseils

  • Ne modifiez pas manuellement la table. L'interface d'administration du plugin expose tout ce dont vous pourriez avoir besoin – révoquer un jeton, régénérer un jeton, voir les décomptes. La modification manuelle des lignes compromet l'intégrité de claim_count.
  • Si vous restaurez une sauvegarde qui n'inclut pas cette table, l'auto-vérification la détectera lors de la prochaine visite de l'administrateur et proposera de recréer la table.
  • Le schéma est versionné. Les futures mises à jour du plugin peuvent ajouter des colonnes ; la mise à niveau est sûre et idempotente.
  • Aucun SQL dans ce document par conception. Les schémas dérivent ; les documents ne doivent pas les porter. Lisez toujours la classe Charitable_Ambassadors_Invites_Schema du plugin pour la liste canonique des colonnes.

Référence développeur

Le reste de cette page est destiné aux développeurs et aux administrateurs de bases de données.

Classe de schéma

Charitable_Ambassadors_Invites_Schema::table_name();        // string - prefixed name
Charitable_Ambassadors_Invites_Schema::exists();            // bool   - does the table exist
Charitable_Ambassadors_Invites_Schema::is_current();        // bool   - exists + columns match + version current
Charitable_Ambassadors_Invites_Schema::schema_version();    // string - stored version (empty if no record)
Charitable_Ambassadors_Invites_Schema::create();            // creates via dbDelta + stamps version
Charitable_Ambassadors_Invites_Schema::upgrade();           // idempotent migration to current schema
Charitable_Ambassadors_Invites_Schema::drop();              // drops table + deletes schema-version option

Toutes les méthodes sont statiques et peuvent être appelées en toute sécurité depuis n'importe quel contexte (le fichier est chargé inconditionnellement afin que le contrôle d'intégrité et les informations du site puissent interroger l'état même lorsque les Invitations sont désactivées).

Clés d'option

charitable_ambassadors_invites_schema_version       # current installed schema version
charitable_settings > ambassadors > invites_enabled # feature master switch

Classe Tokens

Pour travailler avec les lignes de la table par programme :

Charitable_Ambassadors_Invites_Tokens::get_or_create( $user_id, $campaign_id = 0 );
Charitable_Ambassadors_Invites_Tokens::lookup_by_token_string( $token_string );
Charitable_Ambassadors_Invites_Tokens::lookup_by_id( $token_id );
Charitable_Ambassadors_Invites_Tokens::increment_view( $token_id );
Charitable_Ambassadors_Invites_Tokens::increment_claim( $token_id );
Charitable_Ambassadors_Invites_Tokens::revoke( $token_id );
Charitable_Ambassadors_Invites_Tokens::build_invite_url( $token_string );

Filtres

FiltreDéfautObjectif
wp_charitable_ambassadors_inviteswp_charitable_ambassadors_invite_tokensRemplacez le nom de la table (par exemple, tables dans le périmètre multisite). Non recommandé en production.
charitable_ambassadors_invitations_storage_docs_urlcette pageRemplacez l'URL de la documentation vers laquelle les bannières de contrôle d'intégrité pointent.

Actions

ActionArgsSe déclenche lorsque
charitable_ambassadors_invites_schema_created$table_nameSchema::create() a effectivement créé (pas seulement mis à jour) la table.
charitable_ambassadors_invites_schema_upgraded$from_version, $to_versionSchema::create() a exécuté dbDelta et appliqué des ALTER.
charitable_ambassadors_invites_schema_dropped$table_nameSchema::drop() a supprimé la table.

Intégration des informations du site

Outils Charitable » Informations du site dispose d'un bloc Ambassadeurs qui affiche :

  • Si la table existe.
  • La version actuelle du schéma.
  • Le nombre total de lignes.
  • Si le schéma est à jour.

Voir Informations du site pour la disposition complète.

Multisite

Chaque sous-site obtient sa propre table car le nom de la table est préfixé via $wpdb->prefix. L'activation du réseau ne change rien à cela – la fonctionnalité reste opt-in par sous-site.

Export des données personnelles

La fonctionnalité Invitations enregistre un exportateur de données personnelles auprès des Outils de confidentialité de WordPress. Lorsqu'un utilisateur demande l'exportation de ses données personnelles, l'exportateur parcourt ses lignes de jetons et inclut les chaînes de jetons, les dates, les nombres de vues et les nombres de réclamations dans son export.

Capacités

Toutes les opérations d'administration (recréer, mettre à niveau, supprimer) nécessitent manage_charitable_settings. La désinstallation destructive nécessite en outre de taper le nom de la table pour confirmation.

Exemples de personnalisation

Masquer l'option de désinstallation destructive d'un rôle utilisateur spécifique :

add_filter( 'user_has_cap', function ( $allcaps, $caps, $args ) {
    if ( ! empty( $caps ) && in_array( 'manage_charitable_settings', $caps, true ) ) {
        $user = get_userdata( $args[1] );
        if ( $user && in_array( 'finance_admin', (array) $user->roles, true ) ) {
            unset( $allcaps['manage_charitable_settings'] );
        }
    }
    return $allcaps;
}, 10, 3 );

Déclenchez votre système d'audit lorsque la désinstallation destructive se déclenche :

add_action( 'charitable_ambassadors_invites_schema_dropped', function ( $table_name ) {
    wp_remote_post( 'https://audit.example.com/hook', [
        'body' => [
            'event'      => 'invites_table_dropped',
            'table_name' => $table_name,
            'user_id'    => get_current_user_id(),
            'site_url'   => site_url(),
            'timestamp'  => time(),
        ],
    ] );
} );

Redirigez les bannières d'auto-vérification vers vos documents internes :

add_filter( 'charitable_ambassadors_invitations_storage_docs_url', function () {
    return home_url( '/internal/charitable-invitations-runbook/' );
} );

Connexes

Liens utiles

🤝 Obtenez de l’aide quand vous en avez besoin

Contacter le support client →

📑 Trouvez le guide dont vous avez besoin

Parcourez le centre de documentation →

⬇️ Téléchargez des stratégies éprouvées, des idées de campagnes et des outils d'experts

Obtenir le kit de collecte de fonds →

🔗 Laissez votre assistant IA faire le travail de collecte de fonds pour vous.

Connect Charitable à votre assistant IA →

💸 Obtenez des ressources gratuites pour la collecte de fonds
Rendez-vous sur le Hub de collecte de fonds Charitable →

🤔 Des questions sur Charitable ?
FAQ Charitable →

Besoin d'aide pour comprendre les termes et le jargon des organisations à but non lucratif ?
Consultez notre glossaire des organisations à but non lucratif→


Vous avez encore des questions ? Nous sommes là pour vous aider !

Dernière modification :

Quoi de neuf dans Charitable

Voir les dernières mises à jour
🔔 Abonnez-vous pour recevoir nos dernières mises à jour
📧 Abonnez-vous aux e-mails

Abonnement par e-mail

Rejoignez notre newsletter

Nous ne vous enverrons pas de spam. Nous envoyons un e-mail uniquement lorsque nous pensons qu'il vous sera réellement utile. Désabonnez-vous à tout moment !

Amélioration Paiements

💸 Introduction des tarifs échelonnés pour l'allègement des frais : Adaptez la demande au don !

L'allègement des frais pose une courte question à vos donateurs lors du paiement : souhaitez-vous couvrir les frais de traitement de ce don ? Jusqu'à présent, cette question utilisait un taux unique pour chaque don sur une passerelle, de sorte qu'un don de 10 $ et un don de 500 $ se voyaient demander le même pourcentage. L'allègement des frais 1.3.0 vous permet de définir autant de tranches de dons que vous le souhaitez, chacune portant son propre taux. Pourquoi c'est important :

  • 🪙 Plus doux pour les petits dons : Un coût de transaction fixe représente une part beaucoup plus importante d'un don de 10 $ que d'un don de 500 $, les tranches vous permettent donc de demander moins en bas.
  • 🎚️ Autant de tranches que nécessaire : Chaque tranche porte son propre pourcentage et son propre montant fixe, et la tranche supérieure s'exécute sans limite supérieure.
  • 🛑 Un plafond facultatif : Un champ de frais maximum empêche qu'un donateur ne se voie demander plus qu'un nombre que vous choisissez, quel que soit le montant du don.
  • 🔌 Défini par passerelle de paiement : Stripe peut fonctionner avec quatre tranches tandis que Windcave et Payfast restent sur un taux unique, car les tranches appartiennent à une passerelle et non à l'ensemble de votre site.
  • 🛡️ Rien ne change tant que vous ne le décidez pas : Vos taux actuels restent exactement les mêmes jusqu'à ce que vous activiez « Utiliser les tarifs échelonnés » sous Charitable » Paramètres » Avancé » Allègement des frais.

Consultez notre annonce ici.

Dons Amélioration

📊 Votre tableau de bord Pro peut désormais comparer, exporter et évaluer !

La plupart des tableaux de bord de collecte de fonds vous indiquent seulement combien vous avez collecté. Charitable Pro 1.8.19 reconstruit le tableau de bord et la Vue d'ensemble des rapports autour des questions les plus difficiles : si quelque chose ne fonctionne pas, si cette période a été meilleure que la précédente, et quel changement unique ferait la plus grande différence aujourd'hui. Pourquoi c'est important :

  • 📈 Chaque chiffre a une tendance : Choisissez une période et les vignettes ainsi que le graphique bougent ensemble, chaque total étant affiché par rapport à la période précédente.
  • 🗓️ Des graphiques lisibles : Les courtes périodes regroupent les dons jour par jour, tandis que les longues périodes regroupent par semaine ou par mois, de sorte qu'une année complète se lit comme une courbe au lieu d'une ligne plate.
  • 🔀 Comparez n'importe quelles 2 périodes : Pas seulement consécutives, vous pouvez donc demander comment ce mois de décembre s'est comparé au mois de décembre dernier. C'est important car la collecte de fonds est saisonnière.
  • 📤 Exportez le résumé complet : Envoyez la vue d'ensemble complète en CSV ou PDF, prête pour un dossier de conseil d'administration ou un rapport de bailleur de fonds.
  • 🎯 Évaluez votre configuration gratuitement : Faites évaluer votre configuration de collecte de fonds, de sorte que le seul changement à faire ensuite soit celui que vous pouvez voir.

Consultez notre annonce ici.

Fonctionnalité Nouveau

🎟️ Présentation des Événements Caritatifs : Vendez des Billets dans Vos Campagnes !

La plupart des organisations à but non lucratif vendent des billets d'événement dans un outil et collectent des dons dans un autre, ce qui laisse deux ensembles de rapports et une correspondance manuelle à la fin de l'année. Événements Caritatifs réunit les deux, en vendant des billets via les mêmes formulaires de don et passerelles de paiement que vous utilisez déjà dans Charitable. Pourquoi c'est important :

  • 🎟️ Chaque billet est un don : Les ventes de billets passent par la passerelle que vous utilisez déjà et comptent pour l'objectif de la campagne, le tout géré sous Charitable » Événements.
  • 📱 Enregistrement par QR code depuis n'importe quel téléphone : Chaque participant reçoit son propre code QR sur le reçu, et les bénévoles scannent à l'entrée via un lien d'enregistrement qui ne nécessite aucun compte WordPress.
  • 🧾 Reçus prêts pour la déclaration de revenus : Attribuez à chaque type de billet une juste valeur marchande, et Charitable indiquera le montant déductible d'impôt correct sur chaque reçu de donateur.
  • 📋 Détails des participants au moment du paiement : Demandez à chaque invité son choix de repas, sa taille de chemise ou ses besoins d'accès, avec un enregistrement distinct du participant créé pour chaque billet.
  • 🗓️ Blocs et calendriers inclus : Trois blocs d'éditeur ainsi que la prise en charge de Sugar Calendar et The Events Calendar placent vos événements là où les supporters les recherchent déjà.

Consultez notre annonce ici.

ia Nouveau

🚀 Libérez la puissance de l'IA dans Charitable !

Votre assistant IA peut désormais créer, modifier et gérer vos campagnes de collecte de fonds Charitable directement — il suffit de demander. Avec Charitable Pro ajoutant la prise en charge de l'écriture pour l'API WordPress Abilities, des outils comme ChatGPT, Claude et Cursor peuvent gérer des actions administratives complètes en toute sécurité via MCP. Pourquoi c'est important :

  • 🤖 Création de campagnes en langage clair : Demandez à votre assistant un objectif comme « Mettre en place une collecte de fonds pour le refuge avec un objectif de 5 000 $ », et il crée une ébauche de campagne complète avec des paliers de dons suggérés.
  • 🎨 Modifications instantanées du formulaire de don : Ajoutez des champs personnalisés, changez les couleurs des boutons ou réorganisez les éléments sans avoir à modifier les paramètres du formulaire.
  • 📝 Enregistrement des dons hors ligne : Informez votre assistant des dons en espèces ou par chèque, et il associera les e-mails des donateurs et enregistrera les transactions dans votre historique.
  • 🛡️ Sécurité et contrôle par défaut : L'accès en écriture reste désactivé jusqu'à ce qu'il soit activé dans Charitable » Outils » AI MCP, maintenant la sécurité des rapports en lecture seule par défaut.
  • 📜 Journalisation complète des audits : Chaque modification apportée par un assistant IA est suivie dans Charitable » Outils » Journaux, vous savez donc toujours qui (ou quoi) a mis à jour votre site.

Consultez notre annonce ici.

Amélioration Paiements

💰 Acceptez les dons récurrents avec Windcave et Charitable

Un donateur configure son don une seule fois sur la page de paiement sécurisée de Windcave, et Charitable facture chaque renouvellement par la suite selon le calendrier établi. Pourquoi c'est important :

🏦 Organisations basées en Nouvelle-Zélande ou en Australie : dons mensuels sur la passerelle avec laquelle votre banque vous a déjà configuré, sans second processeur à intégrer.
⛪ Églises acceptant les dîmes et offrandes régulières : les membres de la congrégation définissent leur propre calendrier une fois, ce qui est le moyen le plus simple de lancer des dons d'église récurrents sans plateforme distincte.
🌏 Groupes avec des donateurs dans plusieurs devises : Windcave en gère plus de 20, ainsi un sympathisant peut donner dans la devise qu'il détient réellement.
📅 Fonds de fonctionnement plutôt que des campagnes ponctuelles : activez le mode « Récurrent uniquement » et l'option ponctuelle disparaît, de sorte que chaque don à cette campagne est un abonnement.
🧾 Équipes sans développeur attitré : 3 jeux d'identifiants collés sur une page de paramètres, et aucun code nulle part.

Consultez notre annonce ici.