Ein Grund, warum Charitable eines der besten WordPress-Plugins für Kampagnen und Spenden ist, ist seine Flexibilität und die Fähigkeit, anderen zu ermöglichen, verschiedene Schlüsselaspekte des Erlebnisses anzupassen – einschließlich E-Mails, Kampagnendetails und des Spendenformulars. Ein Teil dieser Flexibilität liegt in den „Hooks und Filtern“ im Code von Charitable, die WordPress-Entwicklern zur Verfügung stehen. Über diese kann ein Entwickler eine Website anpassen, um:
— Ein benutzerdefiniertes Feld im Spendenformular über die Donations Field API anzuzeigen.
— Neue E-Mail-Tags hinzuzufügen oder bestehende mit der Email Fields API zu ändern.
— Anpassungen an Add-ons wie dem Ambassador Addon und dem Annual Receipts Addon vorzunehmen.
Code für ein WordPress-Plugin kann auf verschiedene Arten und an verschiedenen Stellen geschrieben werden: Einige Codes können in die Datei „functions.php“ des aktiven WordPress-Themes eingefügt werden, einige werden in ein Plugin geschrieben (das aktiviert und deaktiviert werden kann, auch wenn der Benutzer dasselbe Theme beibehält) und (was immer beliebter wird) Code kann in einem Code-Snippets-Plugin gehostet werden.
Unabhängig davon, wo sich der Code befindet, gibt es Best Practices, die WordPress-Entwickler und Coder anwenden sollten, um sicherzustellen, dass die Website, auf der er läuft, sicher bleibt und keine Fehler aufweist. Das Folgende ist kein vollständiger oder tiefgehender Leitfaden, sondern allgemeine Erinnerungen für diejenigen, die Code schreiben ODER Code von Entwicklern entgegennehmen, um ihn in ihre Website einzufügen – insbesondere wenn dieser Code auf einem Drittanbieter-Plugin (wie Charitable) basiert.
Plugin-Datei bevorzugt
Wenn möglich, versuchen Sie, benutzerdefinierten Code in einem EIGENEN WordPress-Plugin zu platzieren. Dies erleichtert die Beibehaltung des Codes, wenn Sie Ihr WordPress-Theme wechseln, und ermöglicht es Ihnen auch, das Plugin mit den Anpassungen zu Aktivieren/Deaktivieren für Debugging-Zwecke. Es gibt viele Beiträge und Tutorials im Web über die Erstellung eines einfachen WordPress-Plugins wie diesem.
Nicht annehmen, immer prüfen
Es ist wichtig, dass benutzerdefinierter Code NICHT DAVON AUSGEHT, DASS CHARITABLE AUF IHRER WEBSITE AKTIVIERT UND AKTIV IST. Warum? Denn wenn versucht wird, eine Funktion im Kerncode von Charitable aufzurufen – und der Code nicht vorhanden ist – kann ein Fehler auftreten… ein Fehler, der Ihre Website lahmlegen könnte! Manchmal kann WordPress Ihre Website in den „Wiederherstellungsmodus“ versetzen und dem Website-Administrator eine E-Mail senden, um ihn über diesen Fehler zu informieren, aber das ist nicht immer der Fall. Daher sollte JEDER Code, der für Charitable geschrieben wurde – unabhängig von seinem Zweck oder seinem Speicherort –, „prüfen“, ob Charitable aktiviert ist und/oder die Funktion, die aufgerufen werden soll, existiert.
Beachten Sie unser erstes (schlechtes!) Beispiel:
👎🏻 SCHLECHTES BEISPIEL:
// 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' );
Der Zweck dieses Codeblocks ist es, das „Gateway-Label“ zu etwas zu machen, das als dynamisches Tag in Charitable-E-Mails hinzugefügt werden kann. Der obige Entwickler „hookt“ die Funktion, die dies tut, in das WordPress-„init“, das jedes Mal ausgeführt wird, wenn eine Seite auf der Website geladen wird – egal ob im Adminbereich oder im Frontend. Beachten Sie, dass die Funktion „charitable()“ verwendet… aber wenn diese nicht existiert, gibt PHP einen „fatal error“ aus – und da der obige Code bei JEDEM und JEDEM Seitenaufruf geladen wird, wird die gesamte Website höchstwahrscheinlich abstürzen, ohne die Möglichkeit, sich als Administrator anzumelden usw.
Auch hier ist es eine gute Praxis, niemals davon auszugehen, dass eine Funktion existiert, wenn diese Funktion Teil eines Plugins oder Themes ist (mit anderen Worten, wenn sie nicht Teil des WordPress-Kerns ist). Die Annahme, dass die „charitable()“-Klasse existiert, bedeutet die Annahme, dass das Charitable-Plugin IMMER vorhanden sein wird – aber wenn das Plugin deaktiviert ist (von einem Menschen oder einem anderen Plugin) oder wenn das Plugin aktualisiert wird… wird die Funktion nicht gefunden, und es würde ein (möglicherweise „fataler“) Fehler auftreten. Hier ist die gleiche Funktion, aber mit einer einfachen Ergänzung:
👍🏻 GUTES BEISPIEL:
// 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' );
Beachten Sie die „if“-Anweisung, die prüft, ob die Klasse „charitable“ existiert – dies ist eine Methode in PHP, um sicher zu prüfen, ob die Klasse existiert (in diesem Fall nur, wenn Charitable aktiv auf der Website läuft). Wenn sie nicht existiert, wird der Code nicht ausgeführt und alle sind sicher. Es ist üblich, dass PHP-Entwickler Prüfungen wie class_exists und function_exists verwenden, um schnell sicherzustellen, dass der Code, den sie ausführen wollen, keine schwerwiegenden Fehler verursacht, weil etwas, von dem sie annehmen, dass es existiert, nicht existiert.
Verwenden Sie eindeutige Namen für Funktionen
Wie in den obigen Beispielen erwähnt, geben Sie Ihren Funktionen niemals generische Namen wie „update_email“, denn wenn ein anderes Plugin denselben Namen verwendet (aktuelle Plugins oder zukünftige, die Sie möglicherweise installieren), kann Ihre Website Probleme erleiden. Wenn Sie eine Funktion erstellen, beginnen Sie immer mit „mywebsite_charitable_“ (wie im obigen Beispiel, wobei „mywebsite“ durch eine Zeichenkette von angemessener Länge Ihres Website-Namens ersetzt wird), um sicherzustellen, dass Sie wahrscheinlich einen benutzerdefinierten Namen erstellt haben, der nicht wiederholt wird (Sie können auch die gleiche „Existiert das bereits“-Logik im obigen Schritt verwenden, wenn Sie die Extra-Meile gehen möchten).
WordPress-Debugging und Debug-Logs aktivieren
Für alles, was über ein einfaches Skript hinausgeht, dokumentieren und protokollieren WordPress-Entwickler üblicherweise PHP-Warnungen und -Fehler, um Probleme „abzufangen“ (insbesondere wenn sie auf der Website nicht offensichtlich sichtbar sind). Das Charitable-Support-Team empfiehlt die Basis-Funktionen WP_DEBUG und WP_DEBUG_LOG, wie hier in der WordPress-Dokumentation erwähnt.
Verwenden Sie ein Code-Snippet-Plugin?
Alles oben Gesagte gilt auch für Code, der in Code-Snippet-Plugins eingefügt wird. Wenn Sie ein Problem mit Charitable haben und wissen, dass Sie benutzerdefinierten Code in einem Code-Snippet ausführen, sollten Sie in der Lage sein, das Code-Snippet-Plugin zu deaktivieren, um zu sehen, ob dies das Problem löst oder Ihnen bei der weiteren Fehlerbehebung hilft.
Nicht auf Produktionssystemen testen
Schließlich ist es eine gute Idee, benutzerdefinierten Code in einer Staging- oder Entwicklungsumgebung zu testen und nicht live auf Ihrer Website. Wenn Sie Charitable hier zu Testzwecken deaktivieren, ist dies eine gute „endgültige“ Methode, um festzustellen, ob Ihre Website erhebliche Probleme haben könnte. Dies schützt Ihre Produktionsumgebung und ermöglicht weiterhin Spenden.
Denken Sie daran, dass Sie, wenn Sie sich über den Code, den Sie zu Ihrem Theme, Ihrem eigenen Plugin oder einem Code-Snippet-Plugin hinzufügen, unsicher sind, einen Entwickler konsultieren sollten. Wenn Sie allgemeine Fragen haben, können Sie sich gerne an unser Support-Team wenden, das Ihnen gerne Fragen zu jedem Code beantwortet, den Sie möglicherweise zu Ihrer Website hinzufügen, um Charitable zu erweitern. Wir sind für Sie da und unterstützen Sie bei der Erweiterung Ihrer Website, um Ihre Bedürfnisse zu erfüllen!
Wir hoffen, dass diese Vorschläge Ihnen das Vertrauen geben und sicherstellen, dass Ihre Anpassungen an Charitable noch viele Jahre lang gut funktionieren.






