L'une des raisons pour lesquelles Charitable est l'un des meilleurs plugins WordPress pour gérer des campagnes et accepter des dons est sa flexibilité et sa capacité à permettre à d'autres de personnaliser divers aspects clés de l'expérience – y compris les e-mails, les détails de la campagne et le formulaire de don. Une partie de cette flexibilité réside dans les « hooks et filtres » que Charitable possède dans son code et qui sont disponibles pour les développeurs WordPress. Grâce à ceux-ci, un développeur peut personnaliser un site pour :
— Afficher un champ personnalisé sur le formulaire de don via l'API des champs de dons.
— Ajouter de nouvelles balises d'e-mail ou modifier celles existantes avec l'API des champs d'e-mail.
— Personnalisations des extensions telles que l'extension Ambassadeur et l'extension Reçus Annuels.
Le code d'un plugin WordPress peut être écrit de plusieurs manières et à différents endroits : certains codes peuvent être placés dans le fichier « functions.php » du thème WordPress actif, certains sont écrits dans un plugin (qui peut être activé et désactivé même si l'utilisateur conserve le même thème), et (ce qui devient de plus en plus populaire) le code peut être hébergé dans un plugin d'extraits de code.
Peu importe où le code se trouve, il existe des meilleures pratiques que les développeurs et les codeurs WordPress devraient utiliser pour s'assurer que le site Web sur lequel il s'exécute reste sécurisé et ne tombe pas en panne. Ce qui suit n'est pas un guide complet ni approfondi, mais des rappels généraux pour ceux qui écrivent du code OU acceptent du code de développeurs à insérer sur leur site Web – surtout si ce code repose sur un plugin tiers (comme Charitable).
Fichier de plugin préféré
Si possible, essayez de placer le code personnalisé dans SON PROPRE plugin WordPress. Cela facilite le maintien du code en place si vous changez de thème WordPress et vous permet également d'activer/désactiver facilement le plugin contenant les personnalisations à des fins de débogage. Il existe de nombreux articles et tutoriels sur le Web sur la création d'un plugin WordPress simple comme celui-ci.
Ne supposez pas, vérifiez toujours
Il est important que tout code personnalisé NE SUPPOSE PAS QUE CHARITABLE EST ACTIVÉ ET EN COURS D'EXÉCUTION SUR VOTRE SITE WEB. Pourquoi ? Parce que s'il tente d'appeler une fonction dans le code principal de Charitable – et que le code n'est pas là – une erreur peut se produire… une erreur qui pourrait faire planter votre site Web ! Parfois, WordPress est capable de mettre votre site en « Mode de récupération » et d'envoyer un e-mail à l'administrateur du site pour l'informer de cette erreur, mais ce n'est pas toujours le cas. Par conséquent, TOUT code écrit pour Charitable – quel que soit son objectif ou où le code est situé – doit « vérifier » pour s'assurer que Charitable est activé et/ou que la fonction qu'ils tentent d'appeler existe.
Remarquez notre premier (mauvais !) exemple :
👎🏻 MAUVAIS EXEMPLE :
// Bad Example :-( Of Hooking Into Charitable
function charitable_add_donation_gateway_email_tag() {
charitable()->donation_fields()->get_field( 'gateway_label' )->email_tag = true;
}
add_action( 'init', 'charitable_add_donation_gateway_email_tag' );
L'objectif de ce bloc de code est de faire de « l'étiquette de passerelle » quelque chose qui peut être ajouté comme balise dynamique dans les e-mails de Charitable. Le développeur ci-dessus « accroche » la fonction qui fait cela à l'« init » de WordPress, qui s'exécute chaque fois qu'une page est chargée sur le site Web – qu'elle soit dans l'administration ou sur le front-end. Notez que la fonction utilise « charitable() »... mais si cela n'existe pas, PHP générera une « erreur fatale » – et comme le code ci-dessus se charge à CHAQUE chargement de page, l'ensemble du site plantera très probablement sans possibilité de se connecter en tant qu'administrateur, etc.
Encore une fois, il est de bonne pratique de ne jamais supposer qu'une fonction existe si cette fonction fait partie d'un plugin ou d'un thème (en d'autres termes, si elle ne fait pas partie du cœur de WordPress). Supposer que la classe « charitable() » existe, c'est supposer que le plugin Charitable sera TOUJOURS là – mais si le plugin est désactivé (par un humain ou par un autre plugin) ou si le plugin est mis à jour... la fonction ne sera pas trouvée, et une erreur (potentiellement « fatale ») sera rencontrée. Voici la même fonction mais avec un ajout simple :
👍🏻 BON EXEMPLE :
// Good Example :-) Of Hooking Into Charitable
// Checking To See If The Class Exists!
function charitable_add_donation_gateway_email_tag() {
if ( class_exists('charitable') ) : // check for class
charitable()->donation_fields()->get_field( 'gateway_label' )->email_tag = true;
endif;
}
add_action( 'init', 'mysite_charitable_add_donation_gateway_email_tag' );
Remarquez l'instruction « if » qui vérifie si la classe « charitable » existe – c'est une façon en PHP de vérifier en toute sécurité si la classe existe (dans ce cas, elle n'existera que si Charitable est activement exécuté sur le site Web). Si elle n'existe pas, le code ne s'exécute pas et tout le monde est en sécurité. Il est courant pour les développeurs PHP de faire des vérifications comme class_exists et function_exists pour s'assurer rapidement que le code qu'ils sont sur le point d'exécuter ne rencontrera pas d'erreurs graves parce que quelque chose qu'ils supposent exister n'existe pas.
Utiliser des noms uniques pour les fonctions
Comme indiqué dans les exemples ci-dessus, ne donnez jamais à vos fonctions des noms génériques comme « update_email » car si un autre plugin utilise le même nom (plugins actuels ou futurs que vous pourriez installer), votre site Web pourrait rencontrer des problèmes. Lors de la création d'une fonction, commencez toujours par « mon_site_web_charitable_ » (comme dans l'exemple ci-dessus, en remplaçant « mon_site_web » par une chaîne de caractères de longueur raisonnable de votre nom de site Web) pour vous assurer que vous avez probablement créé un nom personnalisé qui n'est pas répété (vous pouvez également utiliser la même logique « cela existe-t-il déjà » dans l'étape ci-dessus si vous voulez faire un effort supplémentaire).
Activer le débogage et les journaux de débogage de WordPress
Pour tout ce qui dépasse un simple script, les développeurs WordPress aiment couramment documenter et enregistrer les avertissements et les erreurs PHP pour « attraper » les problèmes (surtout s'ils ne sont pas apparemment visibles sur le site Web). L'équipe de support de Charitable recommande les fonctions de base WP_DEBUG et WP_DEBUG_LOG, comme mentionné ici dans la documentation WordPress.
Utilisation d'un plugin d'extraits de code ?
Tout ce qui précède s'applique également au code inséré dans les plugins d'extraits de code. Si vous avez un problème avec Charitable et que vous savez que vous exécutez du code personnalisé dans un extrait de code, vous devriez pouvoir désactiver le plugin d'extrait de code pour voir si cela résout le problème ou vous aide à dépanner davantage.
Ne pas tester sur la production
Enfin, il est conseillé de tester le code personnalisé sur un environnement de staging ou de développement et non en direct sur votre site web. Si vous désactivez Charitable ici à titre de test, c’est une bonne façon « finale » de déterminer si votre site web pourrait rencontrer des problèmes importants. Cela maintient votre environnement de production en sécurité et toujours capable d’accepter des dons.
N’oubliez pas que si vous n’êtes pas sûr du code que vous ajoutez à votre thème, à votre propre plugin ou à un plugin d’extraits de code – consultez un développeur. Si vous avez des questions générales, n’hésitez pas à contacter notre équipe de support qui sera heureuse de répondre aux questions concernant tout code que vous pourriez ajouter à votre site web pour étendre Charitable. Nous sommes là pour vous et pour vous aider à étendre votre site web afin de répondre à vos besoins !
Nous espérons que le partage de ces suggestions vous donnera la confiance nécessaire et garantira que vos personnalisations de Charitable continueront de fonctionner correctement pendant des années.






