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!

Neu Vorlagen

🤩 Neue Beacon Kampagnenvorlagen mit „Hero“-Block!

Mit den neuen Beacon Kampagnenvorlagen für Charitable Pro können Sie eine beeindruckende, bildschirmfüllende Spendenaktion starten, die sofort die Aufmerksamkeit der Besucher oberhalb der Falz erregt.

Spendenaktions-Header für Save Maple Grove Park mit einem Spenden-Widget und einem kleinen quadratischen Foto eines sonnenbeschienenen Baumes als Miniaturansicht links.

🔦 Wirkung oberhalb der Falz: Beginnen Sie mit einem bildschirmfüllenden Hero-Bild, Ihrem Logo und Ihrem Spendenziel mit einem Spenden-Widget, das direkt über dem Banner platziert ist, sodass Ihre Bitte und Ihr Schwung sofort ohne Scrollen registriert werden.

📐 Zwei flexible Layouts: Wählen Sie zwischen einem strukturierten Zwei-Spalten-Layout für nebeneinanderliegende Storys und unterstützende Details oder einer übersichtlichen Ein-Spalten-Ansicht für ununterbrochene Langform-Erzählungen.

⚡ All-in-One Hero-Feld: Angetrieben durch das neue Campaign Hero-Feld, das Hintergrundmedien, Live-Fortschrittsbalken, benutzerdefinierte Spendenbeträge und wiederkehrende Spendentabs in einem einzigen zusammenhängenden Block vereint, der in jedes Layout eingefügt werden kann.

🎨 Automatische Theme-Anpassung: Das Hero-Banner und das Spenden-Widget übernehmen automatisch die Button- und Akzentfarben Ihres Kampagnen-Themes, sodass Ihre gesamte Präsentation perfekt im Markenstil bleibt, ohne eine Zeile CSS anfassen zu müssen.

Hier mehr erfahren.

Spendenformular Funktion Neu

📝 Spendenformular-Block: Ein funktionierendes Spendenformular überall einbetten

Mit dem neuen Spendenformular-Block für Charitable Pro können Sie ein voll funktionsfähiges Spendenformular direkt auf jeder Seite oder jedem Beitrag im WordPress-Block-Editor platzieren. Keine Weiterleitungen, keine Seitenaktualisierungen und null Reibung zwischen dem Lesen Ihrer Geschichte und dem Leisten eines Beitrags.

📝 Formulare überall platzieren: Platzieren Sie ein funktionierendes Formular direkt auf Ihrer Homepage, in einem Story-basierten Blogbeitrag, auf einer speziellen Landingpage oder innerhalb einer Kampagnenankündigung.

🎯 Dynamische Kampagnenbindung: Wählen Sie einfach eine bestimmte Kampagne aus der Blockseitenleiste aus oder stellen Sie sie so ein, dass sie automatisch an die gerade angezeigte Kampagne gebunden wird.

📐 Vollständige vs. Minimale Formularansichten: Wechseln Sie zwischen einem vollständigen Layout oder einer kompakten Minimalansicht, um Seitenleisten, schmale Spalten oder breite Landingpages perfekt anzupassen.

🎨 Geltungsbereichspezifische No-Code-Stile: Passen Sie Typografie, Container-Abstände, Randradius, Betragsbuttons und Akzentfarben für jede Formularinstanz unabhängig voneinander an, ohne eine Zeile CSS zu berühren.

Hier mehr erfahren.

Botschafter Neu

👤 Erstellerprofile: Geben Sie jeder Peer-to-Peer-Kampagne ein Gesicht

Ambassadors 3.3.0 bietet jetzt Erstellerprofile – geben Sie Ihren Unterstützern ein permanentes, teilbares öffentliches Zuhause, das einmalige Spendenaktionen in dauerhafte Beziehungen verwandelt.

👤 Öffentliche Erstellerseiten: Geben Sie jedem Spendenwerber eine sofortige, übersichtliche Landingpage unter /creator/ihr-name/, um ihren benutzerdefinierten Avatar, ihre Biografie und ein durchsuchbares Raster ihrer Kampagnen zu präsentieren.

📊 Erfolgsnachweis: Steigern Sie das Vertrauen der Spender, indem Sie standortweite Meilensteine im Profil anzeigen – wie z. B. die insgesamt gesammelten Gelder und die Gesamtzahl der Spender.

💳 Interaktive Hover-Karten: Wenn Spender mit der Maus über den Namen eines Erstellers auf einer Kampagnenseite fahren, erweitert sich eine kompakte Karte mit ihrer Biografie und ihren Social-Media-Handles genau im Moment der Entscheidung.

📍 Verantwortungsvolle Standortfreigabe: Ermöglichen Sie Erstellern, ihren Standort sicher mitzuzeigen, indem Sie nur Stadt-, Bundesland- und Landesdetails verwenden.

🛠️ Eigenständige Anpassung: Spendenwerber können ihre eigenen Profile aktualisieren und bis zu sechs soziale Netzwerke direkt aus dem Hub „Meine Kampagnen“ verknüpfen, was Ihnen Administratorzeit spart.

Bereit, Ihre Fürsprecher zu stärken? Aktualisieren Sie auf Ambassadors 3.3.0 und aktivieren Sie noch heute „Öffentliche Erstellerseite aktivieren“!

Verbesserung Zahlungen

📱 Verwandeln Sie mobile Scroller in Spender: Treffen Sie Charitable's Mollie Upgrade

Verlieren Sie mobile Unterstützer, weil sie es hassen, lange Kartennummern auf ihren Handys einzugeben? Charitable's aktualisierte Mollie-Integration bietet:

⚡ One-Tap Wallet Checkout: Ermöglichen Sie Spendern, ihre Geschenke sofort mit Apple Pay oder Google Pay mit einem einfachen Gesichtsscan, Fingerabdruck oder Tippen abzuschließen.

💰 Keine zusätzliche PCI-Belastung: Überspringen Sie komplexe Domain-Verifizierung und Sicherheitskonformität, da alle Wallet-Transaktionen sicher über den gehosteten Checkout von Mollie abgewickelt werden.

🛠️ Benutzerdefinierte Abbruch-Weiterleitung: Sorgen Sie für ein vorhersehbares Erlebnis, indem Sie Spender, die abbrechen, automatisch an Ihre Abbruchseite weiterleiten, oder verwenden Sie Entwicklerfilter, um sie zu einer benutzerdefinierten Seite weiterzuleiten.

Besuchen Sie diese Seite, um mehr zu erfahren.

Botschafter verbessert Neu

Moderations- und Verzeichnisbildschirme in Ambassadors 3.0

Ambassadors 3.0 hat neue Funktionen: Moderations- und Verzeichnisbildschirme… sehen Sie jetzt ganz einfach diejenigen, die Spenden in Ihrem Peer-to-Peer-Netzwerk erhalten – einschließlich Kampagnenerstellern, die möglicherweise verifiziert werden müssen – alles an einem Ort. Generieren Sie Berichte, senden Sie E-Mails direkt an Botschafter und Kampagnenersteller und mehr.

🚀 Sehen Sie, wann Kampagnenersteller und Botschafter ihre Kampagnen aktualisiert haben, welche Spender/Spenden sie eingebracht haben und mehr.

🎉 Botschafter und Kampagnenersteller manuell hinzufügen und mit einem Klick genehmigen!

Besuchen Sie diese Seite, um mehr zu erfahren.