Requis : Charitable Pro 1.8.18+
Note : Actuellement, le chargement des ressources – ou certains de ses aspects – est en « bêta », ce document pourrait donc être mis à jour fréquemment. Revenez régulièrement pour les dernières mises à jour.
Par défaut, Charitable charge ses scripts frontend sur chaque page de votre site. C'est intentionnel. Un bouton de don peut être placé presque n'importe où, y compris dans un menu de thème, un bloc HTML personnalisé, une zone de widget ou un modèle de constructeur de page, et certains de ces emplacements ne peuvent pas être détectés avant que la page ne soit construite. Charger partout signifie qu'un bouton de don fonctionne toujours, où que vous le placiez.
Si vous préférez échanger cette sécurité contre un frontend plus léger, le paramètre Chargement des ressources vous permet de limiter les scripts frontend de Charitable aux pages où il peut réellement détecter un formulaire de don ou une campagne.
Quand l'utiliser
- Un outil de vitesse tel que PageSpeed Insights ou Lighthouse liste les fichiers Charitable sur des pages qui n'ont pas de formulaire de don.
- Votre formulaire de don se trouve sur une page de campagne, et le reste du site n'a pas besoin des scripts du formulaire.
- Vous optimisez les Core Web Vitals et souhaitez moins de requêtes sur votre page d'accueil.
Si vos boutons de don ouvrent une modale de don directement sur une page, ou si votre thème ajoute des liens de don via un menu ou un modèle plutôt que par le contenu de la page, restez sur le réglage par défaut. Voir « Si vos boutons de don cessent de s'ouvrir » ci-dessous.
Où le trouver
Charitable > Réglages > Avancé > Divers, sous Chargement des ressources.
Les deux modes
| Mode | Ce qu'il fait |
|---|---|
| Charger sur toutes les pages (Recommandé) | Le comportement par défaut et original. Les scripts frontend de Charitable se chargent sur chaque page, donc un bouton de don fonctionne où qu'il soit placé. |
| Charger uniquement sur les pages avec un formulaire ou une campagne | Les scripts frontend de Charitable se chargent uniquement là où il détecte du contenu Charitable. Plus léger, mais les placements qu'il ne peut pas détecter nécessiteront un filtre (ci-dessous). |
Le réglage par défaut n'a pas changé par rapport aux versions précédentes, donc la mise à niveau ne change rien tant que vous ne changez pas vous-même de mode.
Ce qui compte comme une page avec un formulaire ou une campagne
Dans le second mode, Charitable vérifie la page actuelle pour :
- Une seule page de campagne.
- Une page de point de terminaison Charitable, telle que le formulaire de don, le reçu de don, le tableau de bord du donateur, la page de connexion, d'inscription ou de profil.
- Tout shortcode Charitable connu dans le contenu de la page.
- Tout bloc Charitable, y compris les blocs d'extension et les modules Divi 5 stockés sous forme de blocs.
Ce qu'il ne peut pas voir, c'est le balisage ajouté en dehors du contenu de la page. Un lien de don dans un menu de thème, une classe CSS charitable-modal-trigger ajoutée manuellement, ou du contenu injecté par un autre plugin sont tous invisibles pour cette vérification. Les filtres de la section développeur existent exactement pour ces cas.
Ce que ce paramètre change aujourd'hui
Le réglage régit les scripts frontend de Charitable :
charitable-frontend.min.js, le script général du formulaire.- Le bundle du bouton de don modal, qui est
charitable-universal-modal(script et feuille de style),charitable.min.js, et le préchargement Stripe qui permet à un champ de carte de s’intégrer dans une modale.
Certains fichiers continuent de se charger sur chaque page dans les deux modes :
charitable.min.cssetvisual-form-themes.min.css, les feuilles de style principales.charitable-session.min.js, qui gère l’état du don.- Feuilles de style de fonctionnalités telles que
charitable-donor-comments.cssetcharitable-videos.css. - Fichiers appartenant à des extensions séparées, tels que
charitable-recurring.min.cssde Dons récurrents.
Une couverture plus large est prévue pour une future version. En attendant, l’extrait à la fin de cette page supprime ces fichiers sur les pages sans contenu Charitable, en utilisant la propre détection de Charitable afin que vos pages de campagne ne soient pas affectées.
Après avoir modifié le réglage
Videz vos caches. Il s’agit d’un réglage pour l’ensemble du site, et les pages mises en cache avant la modification continueront de servir l’ancien ensemble de fichiers. Videz votre cache de page et tout cache CSS et JS combiné ou minifié, dans WP Rocket, LiteSpeed Cache, WP Super Cache, WP-Optimize, Autoptimize ou tout autre que vous utilisez. Un test PageSpeed sur une page mise en cache obsolète n’affichera aucun changement et donnera l’impression que le réglage n’a rien fait.
Deux fichiers à laisser tranquilles
charitable-session.min.js. Il contient la session de don, y compris le montant qu’un donateur a choisi avant d’atteindre le formulaire. Le supprimer peut casser les dons de manière difficile à tracer, et il est petit. Laissez-le.
js.stripe.com/v3. Stripe demande que cela se charge sur chaque page afin que Stripe Radar puisse voir le parcours complet du visiteur lors de l’évaluation d’un paiement pour fraude. Le supprimer sur l’ensemble du site peut réduire la qualité de cette évaluation. Si vous devez toujours le faire, le filtre charitable_stripe_load_stripe_scripts_sitewide le désactive, mais comprenez ce compromis avant de l’utiliser.
Si vos boutons de don cessent de s’ouvrir
Presque toujours, cela signifie qu’un bouton de don se trouve quelque part que la vérification du contenu de la page ne peut pas voir, comme un menu de thème, un modèle d’en-tête ou un bloc HTML personnalisé avec la classe charitable-modal-trigger.
Soit revenez à Charger sur toutes les pages, soit indiquez à Charitable que ces pages comptent comme du contenu :
add_filter(
'charitable_current_page_has_content',
function ( $has_content ) {
// Treat the homepage and the "Ways to Give" page as Charitable content.
if ( is_front_page() || is_page( 'ways-to-give' ) ) {
return true;
}
return $has_content;
}
);
Référence du développeur
Les six filtres ci-dessous doivent être enregistrés avant la priorité 20 de wp_enqueue_scripts, alors accrochez-les à partir d’un plugin, d’un plugin indispensable, ou du fichier functions.php de votre thème au niveau supérieur plutôt qu’à l’intérieur d’un hook ultérieur.
| Filtre | Type | Ce qu'il contrôle |
|---|---|---|
charitable_is_strict_asset_loading | bool | Le mode résolu. Retournez true pour forcer le mode restreint quel que soit le réglage, ou false pour forcer le mode par défaut. |
charitable_current_page_has_content | bool | La réponse finale pour savoir si la page actuelle compte comme contenu Charitable. Le recours ultime pour tout ce que les vérifications ne peuvent pas voir. |
charitable_load_frontend_scripts | bool | Si charitable-frontend.min.js est mis en file d’attente lors de cette requête. |
charitable_content_shortcodes | tableau | Balises de shortcode qui comptent comme contenu Charitable. Ajoutez les vôtres. |
charitable_content_blocks | tableau | Noms de blocs qui comptent comme contenu Charitable, y compris les blocs d’autres espaces de noms. |
charitable_content_endpoints | tableau | Identifiants de point de terminaison Charitable qui comptent comme contenu. Le suffixe _page facultatif peut être omis. |
Deux d’entre eux sont également des fonctions publiques, votre propre code peut donc conditionner ses ressources sur la même décision que Charitable :
charitable_is_strict_asset_loading()renvoie si le mode restreint est actif.charitable_current_page_has_content()renvoie si la page actuelle contient du contenu Charitable.
Il existe également charitable_enqueue_modal_donation_assets, qui est antérieur à ce paramètre. Le retour de false supprime tout le bundle du bouton de don modal lors de la requête actuelle.
Nettoyage des fichiers restants
Cet extrait supprime toutes les feuilles de style et tous les scripts Charitable sur les pages que Charitable lui-même ne considère pas comme du contenu, tout en conservant les deux fichiers nommés ci-dessus. Il interroge charitable_current_page_has_content() plutôt que de coder en dur les conditions de page, de sorte que les pages de campagne, le reçu de don et le tableau de bord du donateur ne sont jamais touchés. Il correspond également par emplacement de fichier plutôt que par nom de poignée, il couvre donc les fichiers supplémentaires sans que vous ayez à les lister.
add_action(
'wp_enqueue_scripts',
function () {
// Let Charitable decide. On any page it considers content, change nothing.
if ( ! function_exists( 'charitable_current_page_has_content' ) || charitable_current_page_has_content() ) {
return;
}
// Files that must keep loading everywhere.
$keep = array( 'charitable-sessions', 'js-cookie', 'stripe-v3' );
foreach ( array( 'styles', 'scripts' ) as $type ) {
$assets = ( 'styles' === $type ) ? wp_styles() : wp_scripts();
$dequeue = array();
// Collect first. Dequeuing while looping over the queue skips entries.
foreach ( (array) $assets->queue as $handle ) {
if ( in_array( $handle, $keep, true ) ) {
continue;
}
$src = isset( $assets->registered[ $handle ] ) ? $assets->registered[ $handle ]->src : '';
if ( is_string( $src ) && false !== strpos( $src, '/plugins/charitable' ) ) {
$dequeue[] = $handle;
}
}
foreach ( $dequeue as $handle ) {
if ( 'styles' === $type ) {
wp_dequeue_style( $handle );
} else {
wp_dequeue_script( $handle );
}
}
}
},
100
);
Ajoutez-le avec un plugin d’extraits de code tel que WPCode, ou dans un plugin must-use. La priorité 100 est importante : elle doit s’exécuter après que Charitable et ses extensions ont mis en file d’attente leurs fichiers.
Après l’avoir ajouté, videz vos caches et réessayez. Sur un site de test avec Charitable Pro, Recurring Donations, donor comments et videos tous actifs, cela a réduit la page d’accueil de 18 fichiers Charitable à 2, et a laissé les 24 fichiers de la page de campagne intacts.
Deux points à vérifier une fois qu’il est en ligne :
- Ouvrez une page de campagne et effectuez un don de test. Elle ne devrait être absolument pas affectée. Si ce n’est pas le cas, l’extrait s’exécute quelque part où il ne devrait pas, et
charitable_current_page_has_contentest le filtre à corriger. - Vérifiez toute page avec un bouton de don qui ouvre une fenêtre modale. Si un bouton cesse de fonctionner, ajoutez cette page via le filtre
charitable_current_page_has_contentmontré précédemment.





