Gemeinnütziger Blog

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

Tutorial: So ändern Sie den Text der Spenden-Schaltfläche pro Kampagne

Zuletzt aktualisiert am

  • Von

Während die meisten Leute Charitable für Spendenaktionen nutzen, haben einige Anwender kreative Wege gefunden, es einzusetzen. Ein Kunde wollte Charitable kürzlich weiterhin als Spenden-Tool nutzen und gleichzeitig als Anmeldeformular für seine Veranstaltung.

Der erste Schritt dazu ist recht einfach: Erstellen Sie einfach eine separate Kampagne für die Veranstaltungsanmeldung. Sie können unterschiedliche Ticketpreise konfigurieren, indem Sie die Funktion „Vorgeschlagene Spenden“ verwenden – legen Sie einfach einen Preis und eine Beschreibung fest.

Die Herausforderung besteht jedoch darin, den Text des Formularbuttons dem Kontext anzupassen. Anstatt „Spenden“ sollte dort etwas wie „Tickets kaufen“ stehen.

In diesem Tutorial zeige ich Ihnen, wie Sie mit ein wenig benutzerdefiniertem Code den Text des Spendenbuttons einfach pro Kampagne anpassen können.

Die Lösung

Um dies zu erreichen, werden wir ein neues Feld im Kampagnen-Editor im WordPress-Dashboard registrieren. Dieses Feld ermöglicht es Ihnen, den Text des Spendenbuttons festzulegen.

Wir werden auch modifizierte Versionen von Vorlagen erstellen, in denen der Spendenbutton angezeigt wird. Diese werden in unserem Theme- oder Child-Theme-Ordner gespeichert und überschreiben die Standardvorlagen, die in Charitable enthalten sind.

Schritt 1: Unsere Funktion hinzufügen

Wenn Sie mein letztes Tutorial gelesen haben, wird Ihnen dieser Schritt bekannt vorkommen.

Wir werden eine PHP-Funktion hinzufügen, die ausgeführt wird, wenn der init-Hook innerhalb von WordPress aufgerufen wird. init ist ein Hook, der früh während des Ladens von WordPress aufgerufen wird, bevor die Seite gerendert wird.

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

Wir verwenden hier eine anonyme Funktion, was in Ordnung ist, solange Sie eine PHP-Version größer als 5.2 verwenden.

Wenn Sie sich nicht sicher sind, wie Sie dies zu Ihrer Website hinzufügen können, lesen Sie unsere Anleitung:

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

Als Nächstes verwenden wir die Campaign Fields API, um dem Kampagnen-Editor ein Feld „Button-Text“ 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( 'button_text', array(
    'label'          => 'Button Text',
    'data_type'      => 'meta',
    'admin_form'     => array(
        'type'     => 'text',
        'required' => false,
        'default'  => 'Donate',
    ),
    'value_callback' => function( Charitable_Campaign $campaign, $key ) {
        $text = $campaign->get_meta( '_campaign_button_text' );

        // Set a default value to use when the button text is not set yet.
        if ( empty( $text ) ) {
            $text = 'Donate';
        }

        return $text;
    },
    ) );

    /**
     * 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 – button_text
– Ein Array von Argumenten

Wir verwenden nur eine Teilmenge aller möglichen Argumente bei der Registrierung eines Kampagnenfeldes. Um andere verfügbare Argumente zu sehen, lesen Sie die ausführliche Inline-Dokumentation auf Github.

Ein wichtiges hier enthaltenes Argument ist der Parameter value_callback:

'value_callback' => function( Charitable_Campaign $campaign, $key ) {
    $text = $campaign->get_meta( '_campaign_button_text' );

    // Set a default value to use when the button text is not set yet.
    if ( empty( $text ) ) {
        $text = 'Donate';
    }

    return $text;
},

Dies ist eine Funktion, die verwendet wird, um den Wert des Feldes für eine bestimmte Kampagne abzurufen. Wir fügen sie hier hinzu, um einen Standardwert von „Spenden“ für das Feld button_text bereitzustellen. Dies ist für bestehende Kampagnen erforderlich, die seit der Hinzufügung dieses Kampagnenfeldes nicht gespeichert wurden.

Wenn wir eine neue Kampagne hinzufügen oder eine bestehende bearbeiten, sehen wir nun ein Panel „Erweiterte Einstellungen“ und darin ein Feld „Button-Text“.

Schritt 3: Überschreiben der Spendenformular-Vorlage

Innerhalb von Charitable finden Sie ein Verzeichnis templates. Alle Vorlagen in diesem Verzeichnis können überschrieben werden, indem Sie eine Kopie in Ihrem Child-Theme-Ordner erstellen. Wenn Sie kein Child-Theme verwenden, können Sie sie auch überschreiben, indem Sie eine Kopie in Ihrem Theme-Ordner erstellen. Wir empfehlen jedoch den Child-Theme-Ansatz, da er sicherstellt, dass Sie Ihre Änderungen bei zukünftigen Theme-Updates nicht verlieren.

Zuerst erstellen wir einen charitable-Ordner in unserem Child-Theme-Ordner. Wenn Sie jemals eine Vorlage im templates-Verzeichnis von Charitable überschreiben möchten, muss diese am gleichen relativen Speicherort im charitable-Ordner (ohne templates) gespeichert werden.

In unserem Fall möchten wir die Vorlage donation-form/form-donation.php überschreiben. So machen wir das:

  • In unserem Child-Theme erstellen wir eine neue Datei unter charitable/donation-form/form-donation.php.
  • Darin fügen wir den Inhalt der Datei templates/donation-form/form-donation.php aus Charitable ein.

Wenn Sie diese Datei speichern und Ihr Spendenformular neu laden, werden Sie keine Unterschiede bemerken – das liegt daran, dass wir noch nichts geändert haben! Lassen Sie uns also unseren benutzerdefinierten Button-Text kopieren.

Suchen Sie in der Vorlage nach der folgenden Zeile:

<button class="button button-primary" type="submit" name="donate"><?php _e( 'Donate', 'charitable' ); ?></button>

In der aktuellen Version von Charitable (1.6.13) befindet sich diese in Zeile 59, dies kann sich jedoch in Zukunft ändern. Der Teil, den wir ersetzen müssen, ist dieser Teil in der Mitte: <?php _e( 'Donate', 'charitable' ); ?>.

Unser benutzerdefinierter Button-Text kann abgerufen werden, indem das Kampagnenobjekt des Formulars mit $form->get_campaign() abgerufen und dann get( 'button_text' ) darauf aufgerufen wird:

<?php echo $form->get_campaign()->get( 'button_text' ); ?>

Zusammengenommen sieht die aktualisierte Zeile so aus:

<button class="button button-primary" type="submit" name="donate"><?php echo $form->get_campaign()->get( 'button_text' ); ?></button>

Wenn Sie nun das Spendenformular neu laden, wird der benutzerdefinierte Button-Text Ihrer Kampagne angezeigt.

Schritt 4: Spülen & Wiederholen für andere Vorlagen

Schritt 3 hat das Spendenformular korrigiert. Aber der „Spenden“-Button erscheint auch in einigen anderen Fällen:

  • In einer Liste oder einem Raster von Kampagnen, wenn Sie den [campaigns]-Shortcode verwenden.
  • Auf der Kampagnenseite selbst.

Bestimmen der zu überschreibenden Vorlagen

Welche Vorlagen Sie überschreiben müssen, hängt davon ab, wie Sie Ihr Spendenformular mit der Einstellung „Anzeigeoptionen“ unter Charitable > Einstellungen anzeigen lassen.

„Auf einer separaten Seite anzeigen“

Die beiden Vorlagen, die Sie überschreiben müssen, sind:

  • templates/campaign/donate-button.php
  • templates/campaign-loop/donate-link.php

Kopieren und fügen Sie den Inhalt dieser beiden Dateien in Ihr Child-Theme unter ein:

  • charitable/campaign/donate-button.php
  • charitable/campaign-loop/donate-link.php

„Auf derselben Seite anzeigen“

Die beiden Vorlagen, die Sie überschreiben müssen, sind:

  • templates/campaign/donate-link.php
  • templates/campaign-loop/donate-link.php

Kopieren und fügen Sie den Inhalt dieser beiden Dateien in Ihr Child-Theme unter ein:

  • charitable/campaign/donate-link.php
  • charitable/campaign-loop/donate-link.php

„In einem Modal anzeigen“

Die beiden Vorlagen, die Sie überschreiben müssen, sind:

  • templates/campaign/donate-modal.php
  • templates/campaign-loop/donate-modal.php

Kopieren und fügen Sie den Inhalt dieser beiden Dateien in Ihr Child-Theme unter ein:

  • charitable/campaign/donate-modal.php
  • charitable/campaign-loop/donate-modal.php

Änderungen vornehmen

Abhängig davon, welche Vorlage Sie überschreiben, ist der tatsächliche Teil, den Sie ändern müssen, entweder:

<?php _e( 'Donate', 'charitable' ); ?>

Oder:

<?php esc_attr_e( 'Donate', 'charitable' ); ?>

Um die erste Variante (d. h. _e) zu ändern, ersetzen Sie sie durch Folgendes:

<?php echo $campaign->get( 'button_text' ); ?>

Wenn Sie die zweite Variante (d. h. esc_attr_e) ändern, tauschen Sie sie gegen Folgendes aus:

<?php echo esc_attr( $campaign->get( 'button_text' ) ); ?>

Abschluss

Nachdem Sie nun alle Vorlagen aktualisiert haben, sollten Sie sehen, dass Ihr benutzerdefinierter Kampagnen-Button-Text überall dort angezeigt wird, wo ein Spenden-Button angezeigt wird. Alles, was wir tun mussten, um dorthin zu gelangen, war, ein neues Kampagnenfeld zu erstellen und drei Standardvorlagen mit unserem Child-Theme zu ändern.

Ich hoffe, Sie können sehen, wie flexibel die Campaign Fields API ist und dass dieser Prozess verwendet werden kann, um viele weitere Anpassungen daran vorzunehmen, wie Charitable auf Ihrer Website funktioniert. Sie könnten diesen Prozess beispielsweise anpassen, um eine kampagnenspezifische Beschreibung vor dem Spendenformular einzufügen. Dazu müssen Sie lediglich ein neues Kampagnenfeld erstellen und den Wert dieses Feldes in die Vorlage form-donation.php einfügen (d. h. Schritte 2 & 3).

Fanden Sie das hilfreich? Haben Sie Fragen? Ich würde mich freuen, von Ihnen zu hören. Senden Sie uns eine E-Mail über unsere Support-Seite oder hinterlassen Sie einen Kommentar unten. Wenn Sie einen Vorschlag für ein Thema haben, das ich in einem zukünftigen Tutorial behandeln soll, würden wir uns auch darüber freuen, davon zu hören. 🙂

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: So ändern Sie den Text des Spenden-Buttons pro Kampagne“

  1. Michelle Avatar
    Michelle

    In Schritt 3 fehlt das „echo“ im zweiten der drei Codeblöcke. Die Zeile sollte lauten:

    get_campaign()->get( ‘button_text’ ); ?>

    1. ericnicolaas Avatar
      ericnicolaas

      Guter Hinweis! Habe das gerade korrigiert.

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.