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

Contactez le support client →  

📑 Trouvez le guide dont vous avez besoin

Parcourez le Hub de documentation →  

⬇️ Téléchargez des stratégies éprouvées, des idées de campagnes et des outils d'experts
Obtenez le kit de collecte de fonds →  

💸 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

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

automatisation mettre à jour

⚡ Générateur d'automatisation visuelle : Glisser-déposer sans code !

Charitable Automation Connect 2.3.0 introduit le Générateur d'automatisation visuelle, une zone d'édition plein écran qui présente chaque automatisation sous forme de flux de cartes connectées : un déclencheur, des conditions facultatives et une liste d'actions exécutées dans l'ordre.

🧩 De nombreuses actions, un seul déclencheur : Taguez un donateur, envoyez un e-mail, ajoutez une note et déclenchez un webhook à partir d'un seul événement, disposés dans n'importe quel ordre.

✉️ Agissez à l'intérieur de Charitable : Les nouvelles actions Envoyer un e-mail, Taguez un donateur et Ajoutez une note de donateur s'exécutent sans service externe requis.

🔤 Étiquettes de fusion : Personnalisez les e-mails et les notes avec des champs dynamiques tels que {first_name}, {total} et {campaign_name}.

🔁 Appliquer aux donateurs existants : Exécutez Taguez un donateur et Ajoutez une note de donateur sur les donateurs que vous avez déjà.

🖥️ Zone d'édition ou Simple : Changez de vue à tout moment, et les automatisations créées avant la version 2.3.0 continueront de fonctionner sans modification.

En savoir plus ici.

Intégration mis à jour

📬 Présentation de Brevo pour Charitable : Transformez automatiquement les donateurs en abonnés

Le moment où un donateur fait un don est le moment où il est le plus engagé. Avec la nouvelle intégration Brevo pour Charitable, vous pouvez transformer automatiquement ces donateurs ponctuels en abonnés à long terme sans toucher à une seule feuille de calcul.

Collectez simplement le consentement du donateur directement sur votre formulaire de don et lancez votre série de bienvenue immédiatement.

Quoi de neuf :

🔄 Synchronisation automatisée des abonnés : Les nouveaux donateurs qui donnent leur accord sont ajoutés directement à votre liste de contacts Brevo dès que leur paiement est traité, sans aucune exportation manuelle ni importation de CSV.

🎯 Contrôle granulaire du consentement et de l'opt-in : Personnalisez le libellé de votre case à cocher, choisissez si elle est cochée par défaut ou non, ou activez le double opt-in de Brevo pour maintenir votre liste propre et conforme.

📋 Mappage de liste par campagne : Dirigez les sympathisants vers votre liste d'e-mails globale ou mappez des campagnes spécifiques à des listes Brevo ciblées pour adapter vos messages de suivi.

⚡ Configuration en 5 minutes : Connectez-vous instantanément en collant votre clé API Brevo dans les paramètres de Newsletter, mappez vos champs de contact et commencez à construire votre liste d'e-mails en mode pilote automatique.

Prêt à développer votre liste de diffusion ? Brevo est disponible dès maintenant à partir du plan Charitable Plus — connectez votre compte dès aujourd'hui !

dons récurrents mis à jour

💳 Mises à jour de carte : Corrigez les cartes expirées sans perdre vos abonnements !

Les cartes de crédit expirées ou mises à jour sont l’une des plus grandes fuites silencieuses dans les collectes de fonds récurrentes. Avec les mises à jour de carte dans l’extension Dons récurrents, les donateurs peuvent désormais actualiser leurs informations de paiement directement, en conservant leur abonnement, leur calendrier et leur historique de dons complètement intacts.

Aucun plan annulé, aucun historique perdu et zéro casse-tête administratif pour votre équipe.

Quoi de neuf :

⚡ Assistance en 30 secondes : les donateurs obtiennent un bouton « Mettre à jour la carte » dédié dans leur tableau de bord qui ouvre le portail client sécurisé et conforme PCI de Stripe pour mettre à jour instantanément les détails de la carte.

🔒 Accès sécurisé et limité : limité exclusivement aux mises à jour de carte par défaut, les donateurs ne peuvent pas annuler ou modifier accidentellement leurs plans depuis le portail, en gardant vos webhooks et vos données synchronisés.

🤝 Assistance administrative : vous aidez un donateur par téléphone ? Ouvrez son portail Stripe sécurisé en un clic depuis votre écran d’administration ou générez un lien de mise à jour à usage unique à lui envoyer par e-mail.

📋 Piste d’audit automatique : chaque mise à jour de méthode de paiement est enregistrée automatiquement avec un horodatage dans les journaux système et le profil du donateur individuel.

Prêt à protéger vos revenus récurrents ? Obtenez le forfait Plus ou Pro et mettez à jour Dons récurrents vers la version 2.3.0+ et activez « Mettre à jour la méthode de paiement » dans vos Paramètres dès aujourd’hui !

Intégration constructeur de pages

Les fans de Divi se réjouissent ! Module natif de barre de progression de campagne Divi 5 !

Avec notre nouveau module natif Divi 5, vous pouvez ancrer vos microsites avec des statistiques de collecte de fonds en temps réel directement sur la toile visuelle. Voici comment cela fonctionne et pourquoi il est intéressant de l'activer dès aujourd'hui.

Créez des mises à jour de campagne VISUELLES ET EN DIRECT. Vous pouvez également :

📊 Barre de progression de campagne : Insérez une barre de progression en direct dans n'importe quelle mise en page Divi 5 et affichez la progression de l'objectif en temps réel.

🎨 Contrôles de style approfondis : Personnalisez facilement la couleur de la barre et de la piste, la hauteur et le rayon pour qu'ils correspondent parfaitement à votre marque.

👁️ Prêt pour le Visual Builder : Configurez et prévisualisez tout directement sur la toile Divi en tant que module de première classe.

🔁 Rendu identique : Le même moteur exact alimente ce module, ce qui signifie une conception cohérente sans correctifs hérités.

✅ Lancements plus rapides : Ne quittez jamais l'interface Divi 5 pour configurer des shortcodes ou deviner à quoi ressembleront vos étiquettes d'objectif.

En savoir plus ici.