Gemeinnütziger Blog

Alles, was Sie über Charitable und unser Team wissen müssen.

Tutorial: So fügen Sie kampagnenspezifische Inhalte zur Spendenquittungs-E-Mail hinzu

Zuletzt aktualisiert am

  • Von

Wenn Sie viele Kampagnen durchführen, müssen Sie möglicherweise kampagnenspezifischen Text zu Ihren Spendenquittungs-E-Mails hinzufügen. Charitable unterstützt dies nicht von Haus aus, aber dank der Flexibilität des zugrunde liegenden Codes ist es möglich, dies zu ermöglichen.

Die Lösung

Um dieses Problem zu lösen, fügen wir dem Kampagnen-Editor im WordPress-Dashboard ein neues Feld hinzu. Dieses Feld ermöglicht es Ihnen, Inhalte hinzuzufügen.

Zusätzlich fügen wir einen neuen E-Mail-Tag hinzu, der zu jeder Spenden-E-Mail, einschließlich der Spendenquittung, hinzugefügt werden kann.

Das Beste daran ist, dass wir all dies mit nur zwei PHP-Funktionen erreichen können! Sehen wir uns an, wie.

Schritt 1: Unsere Funktion hinzufügen

Zuerst fügen wir eine PHP-Funktion hinzu, die aufgerufen wird, wenn der init-Hook innerhalb von WordPress aufgerufen wird. init ist ein Hook, der frühzeitig während des Ladens von WordPress aufgerufen wird, bevor die Seite mit dem Rendern beginnt.

add_action( 'init', function() {
    // Our code will go in here.
} );

Beachten Sie, dass wir in diesem Beispiel eine sogenannte anonyme Funktion erstellen; im Wesentlichen ist dies eine unbenannte Funktion. Dies ist in Ordnung, solange Sie eine PHP-Version größer als 5.2 verwenden.

Sie sind sich nicht sicher, wie Sie Code zu Ihrer Website hinzufügen können? Hier ist unser Leitfaden zu drei verschiedenen Möglichkeiten, wie Sie benutzerdefinierten Code zu Ihrer Website hinzufügen können.

Schritt 2: Das Feld zum Kampagnen-Editor hinzufügen

Seit Version 1.6 enthält Charitable eine API namens Campaign Fields API, die eine einfache Möglichkeit bietet, neue Felder zum Kampagnen-Editor hinzuzufügen. Dies folgte auf die Donation Fields API, die wir in Version 1.5 hinzugefügt haben.

Unser nächster Schritt ist die Verwendung der Campaign Fields API, um unser benutzerdefiniertes Feld zum Kampagnen-Editor hinzuzufügen:

add_action( 'init', function() {

    /**
     * Create a new field as an instance of `Charitable_Campaign_Field`.
     *
     * See all available arguments at:
     *
     * @https://github.com/Charitable/Charitable/blob/ef9a468fbdd6fa83307abe6ac0c38896f625cf45/includes/fields/class-charitable-campaign-field.php
    */
    $campaign_field = new Charitable_Campaign_Field( 'campaign_email_content', array(
       'label' => 'Donation Email Content',
       'data_type' => 'meta',
       'admin_form' => array(
          'type' => 'textarea',
          'required' => false,
       ),
   ) );

    /**
     * Now, we register our new field.
     */
    charitable()->campaign_fields()->register_field( $campaign_field );

} );

In diesem Code erstellen wir zuerst ein neues Feld, indem wir ein Charitable_Campaign_Field-Objekt erstellen. Wir übergeben zwei Parameter beim Erstellen dieses Objekts:

– Ein Schlüssel – campaign_email_content
– Ein Array von Argumenten

Wir verwenden nur eine Teilmenge aller Argumente, die bei der Registrierung eines Kampagnenfeldes möglich sind. Um andere verfügbare Argumente zu sehen, lesen Sie die vollständige Inline-Dokumentation auf Github.

Wenn wir eine neue Kampagne hinzufügen oder eine bestehende bearbeiten, sehen wir nun ein Panel "Erweiterte Einstellungen" und darin ein Feld "Spenden-E-Mail-Inhalt".

Schritt 3: Einen Spenden-E-Mail-Tag hinzufügen

Nachdem wir nun unser Kampagnenfeld eingerichtet haben, besteht der nächste Schritt darin, einen neuen E-Mail-Tag für Spenden zu erstellen. Es gibt verschiedene Möglichkeiten, dies zu tun. Eine Option ist die Verwendung der Donation Fields API, um ein neues Spendenfeld zu registrieren und automatisch einen E-Mail-Tag dafür hinzuzufügen. Dies wäre angebracht, wenn wir das Feld an mehreren Stellen verwenden möchten, z. B. im Spendenexport oder innerhalb der Spenden-Metadaten.

In unserem Fall möchten wir nur einen E-Mail-Tag, also registrieren wir nur diesen. Der erste Schritt ist die Erstellung einer neuen Funktion, die auf dem charitable_email_donation_fields Filter-Hook aufgerufen wird:

/**
 * We create a new function that will be called on the `charitable_email_donation_fields` filter.
 *
 * This function accepts two parameters:
 *
 * @param array $fields All registered donation email fields.
 * @param Charitable_Donation|null $donation When an email is being sent, this will be an instance of `Charitable_Donation`. Otherwise it's null.
 */
add_filter( 'charitable_email_donation_fields', function( $fields, $donation ) {
    Add our field here.
}, 10, 2 );

Wie bei unserer obigen Funktion handelt es sich hierbei um eine anonyme Funktion. Diese akzeptiert jedoch ein paar Parameter. Da wir zwei Parameter verwenden möchten, müssen wir dies in der letzten Codezeile angeben, wo wir eine Priorität von 10 und die Anzahl der Parameter, 2, übergeben.

Als Nächstes erstellen wir in unserer Funktion eine Variable namens $field, die das Feld definiert.

/**
 * Define our field as an array.
 */
$field = array(
    'description' => 'Campaign-specific content',
    'preview' => 'This is some campaign-specific content.',
);

Bisher werden hier nur eine Beschreibung und ein reiner Vorschlagswert für das Feld festgelegt. Der Vorschlagswert ist das, was Sie anstelle des E-Mail-Shortcodes sehen, wenn Sie im E-Mail-Fenster auf die Schaltfläche „E-Mail vorschauen“ klicken.

Unser nächster Schritt ist es, den Wert zu erhalten, der angezeigt werden soll, wenn eine E-Mail gesendet wird:

/**
 * When this filter is called with a Donation object, we need to set
 * the `value` of the field to the campaign content. The rest of the
 * time, we don't need a `value` parameter.
 */
if ( ! is_null( $donation ) ) {
    /**
     * Get the campaign that received the donation.
     */
    $campaign_id = current( $donation->get_campaign_donations() )->campaign_id;
    $campaign = charitable_get_campaign( $campaign_id );

    /**
     * Set the `value` of our field to the campaign's email content.
     */
    $field['value'] = $campaign->get( 'campaign_email_content' );
}

In diesem Code prüfen wir zuerst, ob der Parameter $donation null ist. Wir müssen dies prüfen, da dieser Filter (charitable_email_donation_fields) nicht nur aufgerufen wird, wenn eine Spenden-E-Mail gesendet wird, sondern auch zu anderen Zeiten. Wenn Sie beispielsweise die E-Mail-Einstellungen für die Spendenquittungs-E-Mail aufrufen, wird dieser Filter aufgerufen, um eine vollständige Liste der Spenden-E-Mail-Felder abzurufen.

Wenn wir wissen, dass $donation nicht null ist, können wir die Kampagnen-ID mithilfe der Methode $donation->get_campaign_donations() abrufen. Diese gibt uns eine Reihe von Zeilen, die alle Kampagnenspenden enthalten, die mit einer bestimmten Spende verknüpft sind. Sofern Sie nicht programmatisch Spenden erstellen oder unsere Easy Digital Downloads Connect-Integration verwenden, gibt es nur eine Zeile. Wir rufen also die erste Zeile mit current() ab und dann die Eigenschaft campaign_id daraus.

$campaign_id = current( $donation->get_campaign_donations() )->campaign_id;

Mit der $campaign_id in der Hand können wir charitable_get_campaign( $campaign_id ) aufrufen, um das Charitable_Campaign-Objekt zu erhalten.

$campaign = charitable_get_campaign( $campaign_id );

Wir setzen dann den value-Eigenschaft unseres Feldes auf den Wert des campaign_email_content-Feldes der Kampagne – das, das wir in Schritt 2 oben registriert haben.

$field['value'] = $campaign->get( 'campaign_email_content' );

Schließlich fügen wir unser Feld zum $fields-Array hinzu und geben $fields zurück, wobei unser benutzerdefiniertes Feld enthalten ist.

$fields['campaign_content'] = $field;

return $fields;

Schritt 4: Fügen Sie den Shortcode zum E-Mail-Inhalt hinzu

Wenn Sie bisher mitgearbeitet haben, sollten Sie nun den folgenden Code haben:

/**
 * We are creating a function which will be called on the `init` hook.
 */
add_action( 'init', function() {

	/**
	 * Create a new field as an instance of `Charitable_Campaign_Field`.
	 *
	 * See all available arguments at:
	 *
	 * @https://github.com/Charitable/Charitable/blob/ef9a468fbdd6fa83307abe6ac0c38896f625cf45/includes/fields/class-charitable-campaign-field.php
	 */
	$campaign_field = new Charitable_Campaign_Field( 'campaign_email_content', array(
		'label'      => 'Donation Email Content',
		'data_type'  => 'meta',
		'admin_form' => array(
			'type'     => 'textarea',
			'required' => false,
		),
	) );

	/**
	 * Now, we register our new field.
	 */
	charitable()->campaign_fields()->register_field( $campaign_field );

} );

/**
 * We create a new function that will be called on the `charitable_email_donation_fields` filter.
 *
 * This function accepts two parameters and must return an array.
 *
 * @param array                    $fields   All registered donation email fields.
 * @param Charitable_Donation|null $donation When an email is being sent, this will be an instance of `Charitable_Donation`. Otherwise it's null.
 */
add_filter( 'charitable_email_donation_fields', function( $fields, $donation ) {
	/**
	 * Define our field as an array.
	 */
	$field = array(
		'description' => 'Campaign-specific content',
		'preview'     => 'This is some campaign-specific content.',
	);

	/**
	 * When this filter is called with a Donation object, we need to set
	 * the `value` of the field to the campaign content. The rest of the
	 * time, we don't need a `value` parameter.
	 */
	if ( ! is_null( $donation ) ) {
		/**
		 * Get the campaign that received the donation.
		 */
		$campaign_id = current( $donation->get_campaign_donations() )->campaign_id;
		$campaign    = charitable_get_campaign( $campaign_id );

		/**
		 * Set the `value` of our field to the campaign's email content.
		 */
		$field['value'] = $campaign->get( 'campaign_email_content' );
	}

	/**
	 * Finally, we add our new field to the `$fields` array.
	 *
	 * The key used here (`campaign_content`) will become the email tag
	 * key, so the email tag would be shown like this:
	 *
	 * [charitable_email show=campaign_content]
	 */
	$fields['campaign_content'] = $field;

	return $fields;

}, 10, 2 );

Hier sind nur zwei Funktionen enthalten, aber zusammen erledigen sie alles, was wir von ihnen brauchen.

Der letzte Schritt ist das Hinzufügen des E-Mail-Shortcodes zum E-Mail-Text, was im Bereich E-Mail-Einstellungen erfolgen kann:

Sobald Sie dies getan haben, testen Sie alles, indem Sie eine Ihrer Kampagnen bearbeiten, einige Kampagneninhalte festlegen und schließlich eine Testspende zur Kampagne hinzufügen. Die E-Mail sollte Ihren benutzerdefinierten, kampagnenspezifischen Inhalt enthalten.

Bonus-Tipp: Easy Digital Downloads E-Mail-Tag hinzufügen

Wenn Sie unsere Easy Digital Downloads Connect-Erweiterung verwenden und Ihre kampagnenspezifischen Inhalte in den Kauf-E-Mails von EDD anzeigen möchten, können Sie den Code aus diesem Gist einfügen:

Original-Gist auf GitHub ansehen →

Hat Ihnen das gefallen?

Ich plane, weitere Tutorials wie dieses zu schreiben, um verschiedene Möglichkeiten zu veranschaulichen, wie Sie Charitable an Ihre Bedürfnisse anpassen und optimieren können. Dieses Tutorial wurde insbesondere als Antwort auf die Anfrage eines Benutzers verfasst. Wenn Sie also eine Idee für ein Thema haben, das ich in Zukunft behandeln soll, senden Sie uns eine E-Mail über unsere Support-Seite oder hinterlassen Sie einen Kommentar unten.

Offenlegung: Unsere Inhalte werden von unseren Lesern unterstützt. Das bedeutet, wenn Sie auf einige unserer Links klicken, können wir eine Provision verdienen. Wir empfehlen nur Produkte, von denen wir glauben, dass sie unseren Lesern einen Mehrwert bieten.

2 Antworten auf „Tutorial: Kampagnenspezifische Inhalte zur Spendenquittierungs-E-Mail hinzufügen“

  1. Das ist großartig! Kann HTML in diesem Feld verwendet werden, um etwas wie eine fettgedruckte Zeile zu machen?

    1. ericnicolaas Avatar
      ericnicolaas

      Gute Frage, Josh! HTML sollte dort funktionieren.

      Viele Grüße,
      Eric

Hinterlassen Sie eine Antwort

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Erhalten Sie kostenlose Tipps und Ressourcen direkt in Ihren Posteingang, zusammen mit über 60.000 anderen

Abonnieren Sie unseren Newsletter

Wir werden Sie nicht spammen. Wir senden nur eine E-Mail, wenn wir glauben, dass sie Ihnen wirklich hilft. Abmeldung jederzeit möglich!

Video der Woche:

Sehen Sie sich weitere Videos auf unserem YouTube-Kanal an.

Was ist neu bei Charitable

Die neuesten Updates anzeigen
🔔 Abonnieren Sie, um unsere neuesten Updates zu erhalten
📧 E-Mails abonnieren

E-Mail-Abonnement

Abonnieren Sie unseren Newsletter

Wir werden Sie nicht spammen. Wir senden nur eine E-Mail, wenn wir glauben, dass sie Ihnen wirklich hilft. Abmeldung jederzeit möglich!

Verbesserung Zahlungen

💰 Wiederkehrende Spenden mit Windcave und Charitable akzeptieren

Ein Spender richtet seine Spende einmalig auf der sicheren Zahlungsseite von Windcave ein, und Charitable stellt danach pünktlich jede Verlängerung in Rechnung. Warum das wichtig ist:

🏦 In Neuseeland oder Australien ansässige Organisationen: Monatliche Spenden über das Gateway, mit dem Ihre Bank Sie bereits eingerichtet hat, ohne dass ein zweiter Prozessor angebunden werden muss.
⛪ Kirchen, die regelmäßige Zehnten und Opfergaben erhalten: Die Gemeindemitglieder legen einmal ihren eigenen Zeitplan fest, was der einfachste Weg ist, regelmäßige Kirchenspenden ohne eine separate Plattform zu starten.
🌏 Gruppen mit Spendern in verschiedenen Währungen: Windcave unterstützt über 20 Währungen, sodass ein Unterstützer in der Währung spenden kann, die er tatsächlich besitzt.
📅 Betriebsmittel statt einmaliger Kampagnen: Schalten Sie den Nur-wiederkehrenden-Modus ein, und die Einmal-Option verschwindet, sodass jede Spende für diese Kampagne ein Abonnement ist.
🧾 Teams ohne Entwickler im Personal: 3 Anmeldedaten in eine Einstellungsseite eingefügt, und kein Code irgendwo.

Lesen Sie hier unsere Ankündigung.

Automatisierung Aktualisierung

⚡ Visueller Automatisierungs-Builder: Drag & Drop ohne Code!

Charitable Automation Connect 2.3.0 führt den visuellen Automatisierungs-Builder ein, eine Vollbild-Leinwand, die jede Automatisierung als Fluss verbundener Karten darstellt: ein Auslöser, optionale Bedingungen und eine Liste von Aktionen, die der Reihe nach ausgeführt werden.

🧩 Viele Aktionen, ein Auslöser: Markieren Sie einen Spender, senden Sie eine E-Mail, fügen Sie eine Notiz hinzu und lösen Sie einen Webhook von einem einzelnen Ereignis aus, das in beliebiger Reihenfolge gezogen wird.

✉️ Innerhalb von Charitable handeln: Neue Aktionen wie „E-Mail senden“, „Spender markieren“ und „Spenderhinweis hinzufügen“ laufen ohne externen Dienst.

🔤 Zusammenführung-Tags: Personalisieren Sie E-Mails und Notizen mit Live-Feldern wie {first_name}, {total} und {campaign_name}.

🔁 Auf bestehende Spender anwenden: Führen Sie „Spender markieren“ und „Spenderhinweis hinzufügen“ für Ihre vorhandenen Spender aus.

🖥️ Leinwand oder Einfach: Wechseln Sie jederzeit die Ansicht, und Automatisierungen, die vor 2.3.0 erstellt wurden, funktionieren weiterhin unverändert.

Lesen Sie hier mehr.

Integration aktualisiert

📬 Brevo für Charitable vorstellen: Spender automatisch zu Abonnenten machen

Der Moment, in dem ein Unterstützer eine Spende tätigt, ist der Moment, in dem er am engagiertesten ist. Mit der neuen Brevo-Integration für Charitable können Sie einmalige Spender automatisch in langfristige Abonnenten verwandeln, ohne eine einzige Tabelle anfassen zu müssen.

Sammeln Sie einfach die Zustimmung der Spender direkt auf Ihrem Spendenformular und starten Sie sofort Ihre Willkommensserie.

Was ist neu:

🔄 Automatischer Abonnenten-Sync: Neue Spender, die zustimmen, werden sofort Ihrer Brevo-Kontaktliste hinzugefügt, sobald ihre Zahlung abgewickelt ist – keine manuellen Exporte oder CSV-Importe erforderlich.

🎯 Detaillierte Zustimmungs- & Opt-In-Kontrolle: Passen Sie die Bezeichnung Ihrer Checkbox an, wählen Sie, ob sie standardmäßig aktiviert oder deaktiviert ist, oder aktivieren Sie die Brevo-Double-Opt-In, um Ihre Liste sauber und konform zu halten.

📋 Listen-Mapping pro Kampagne: Leiten Sie Unterstützer zu Ihrer globalen E-Mail-Liste oder ordnen Sie bestimmte Kampagnen gezielten Brevo-Listen zu, um Ihre Folgekommunikation anzupassen.

⚡ 5-Minuten-Einrichtung: Stellen Sie sofort eine Verbindung her, indem Sie Ihren Brevo-API-Schlüssel in die Newsletter-Einstellungen einfügen, Ihre Kontaktfelder zuordnen und Ihre E-Mail-Liste automatisch aufbauen.

Bereit, Ihre Mailingliste zu erweitern? Brevo ist jetzt im Charitable Plus-Plan verfügbar – verbinden Sie noch heute Ihr Konto!

wiederkehrende Spenden aktualisiert

💳 Karten-Updates einführen: Abgelaufene Karten korrigieren, ohne Abos zu verlieren!

Neue abgelaufene oder aktualisierte Kreditkarten sind eines der größten stillen Lecks im wiederkehrenden Fundraising. Mit Card Updates in der Erweiterung Recurring Donations können Spender jetzt ihre Zahlungsdetails direkt aktualisieren – ihre Abonnement-, Zeitplan- und Spendenhistorie bleibt dabei vollständig erhalten.

Keine gekündigten Pläne, keine verlorene Historie und null administrativer Aufwand für Ihr Team.

Was ist neu:

⚡ 30-Sekunden-Self-Service: Spender erhalten in ihrem Dashboard eine spezielle Schaltfläche „Karte aktualisieren“, die das sichere, PCI-konforme Kundenportal von Stripe öffnet, um Kartendetails sofort zu aktualisieren.

🔒 Geltungsbereich & Sicherer Zugriff: Standardmäßig ausschließlich auf Kartenaktualisierungen beschränkt, können Spender ihre Pläne nicht versehentlich aus dem Portal heraus kündigen oder ändern, wodurch Ihre Webhooks und Daten synchron bleiben.

🤝 Unterstützung durch Administratoren: Helfen Sie einem Spender am Telefon? Öffnen Sie sein sicheres Stripe-Portal mit einem Klick von Ihrem Admin-Bildschirm aus oder generieren Sie einen Einmal-Link zur Aktualisierung, den Sie ihm per E-Mail zusenden können.

📋 Automatischer Audit Trail: Jede Aktualisierung der Zahlungsmethode wird automatisch mit einem Zeitstempel sowohl in den systemweiten Protokollen als auch im Profil des einzelnen Spenders aufgezeichnet.

Sind Sie bereit, Ihre wiederkehrenden Einnahmen zu schützen? Holen Sie sich das Plus- oder Pro-Paket, aktualisieren Sie „Wiederkehrende Spenden“ auf Version 2.3.0+ und aktivieren Sie noch heute unter „Einstellungen“ die Option „Zahlungsmethode aktualisieren“!

Integration Seiten-Ersteller

Divi-Fans jubeln! Natives Divi 5 Kampagnen-Fortschrittsbalken-Modul!

Mit unserem neuen nativen Divi 5-Modul können Sie Ihre Microsites mit Echtzeit-Fundraising-Statistiken direkt auf der visuellen Oberfläche verankern. Hier erfahren Sie, wie es funktioniert und warum es sich lohnt, es noch heute zu aktivieren.

Erstellen Sie Kampagnen-Updates, die VISUELL UND LIVE sind. Sie können auch:

📊 Fortschrittsbalken der Kampagne: Fügen Sie einen Live-Fortschrittsbalken in jedes Divi 5-Layout ein und zeigen Sie den Ziel-Fortschritt in Echtzeit an.

🎨 Tiefgreifende Styling-Steuerelemente: Passen Sie die Farbe, Höhe und den Radius des Balkens und der Anzeige einfach an, um sie perfekt an Ihre Marke anzupassen.

👁️ Visual Builder bereit: Konfigurieren und sehen Sie alles direkt auf der Divi-Oberfläche als erstklassiges Modul.

🔁 Identische Darstellung: Dieselbe exakte Engine treibt dieses Modul an, was ein konsistentes Design ohne Legacy-Workarounds bedeutet.

✅ Schnellere Starts: Verlassen Sie niemals die Divi 5-Oberfläche, um Shortcodes zu konfigurieren oder zu erraten, wie Ihre Ziel-Beschriftungen aussehen werden.

Hier mehr erfahren.