Lektionen6

Digital Downloads im Foodblogliebe Theme

Lerne, wie du im Foodblogliebe-Theme digitale Produkte verkaufst — mit Stripe Checkout, ohne WooCommerce, mit automatischem Datei-Versand per E-Mail. Produktanlage, Webhook, Danke-Seite und Käufe-Verwaltung Schritt für Schritt.

0% abgeschlossen

Theme

Produkt im Theme korrekt anlegen

In dieser Lektion trägst du die Stripe-Keys ins Theme ein, lädst deine Download-Datei in den geschützten Ordner und legst das Produkt an, das der Buy-Button später abruft...

Noch nicht gestartet

In dieser Lektion trägst du die Stripe-Keys ins Theme ein, lädst deine Download-Datei in den geschützten Ordner und legst das Produkt an, das der Buy-Button später abruft. Am Ende steht ein funktionierender Shortcode, den du in jeden Blog-Post einbauen kannst.

Die Stripe-Keys ins Theme eintragen

Geh im WordPress-Backend auf Design → Downloads. Du landest im Tab Einrichtung.

Im Schritt „API-Keys eintragen" findest du zwei Felder: Secret Key und Publishable Key. Trag die Werte aus Lektion 02 ein, beide im Testmodus (also sk_test_... und pk_test_...). Klick Keys speichern. Der Secret Key wird serverseitig verschlüsselt abgelegt und danach nur noch maskiert angezeigt.

Direkt darunter ein Button Verbindung testen. Klick ihn einmal. Antwort „Stripe ist verbunden!" → alles gut. Fehler „Invalid API Key" → du hast dich beim Kopieren verklickt (Leerzeichen am Ende, Publishable im Secret-Feld).

Das dritte Feld Webhook Secret (whsec_...) lässt du leer — dazu kommen wir in Lektion 04.

Warum deine PDF in den geschützten Ordner muss

In der normalen WordPress-Mediathek landen Dateien unter wp-content/uploads/JAHR/MONAT/. Jede bekommt eine öffentlich erreichbare URL. Für ein Rezeptbild ist das perfekt, für ein bezahltes PDF das Ende des Geschäftsmodells, sobald die erste Käuferin den Link in einer WhatsApp-Gruppe teilt.

Das Theme legt deshalb einen eigenen Ordner an, sobald du es aktivierst: wp-content/uploads/bap-downloads/. Der ist per .htaccess abgeriegelt, Aufrufe von außen laufen ins Leere.

Du hast zwei Wege, deine Datei dort abzulegen:

Weg A — direkt im Produktformular hochladen. Das Theme bringt im Formular ein Upload-Feld mit, das die Datei selbst in den geschützten Ordner schiebt und automatisch einen Mediathek-Eintrag mit gültiger Attachment ID erzeugt. Pragmatisch für alle Dateien unterhalb des PHP-Upload-Limits (meist 32–128 MB). Für ein normales PDF-Bundle mit 6–20 MB reicht das locker.

Weg B — per SFTP in den Ordner legen. Wenn dein E-Book 200 MB hat oder dein Hoster den PHP-Upload auf 8 MB drosselt, lädst du die Datei per SFTP (FileZilla, Cyberduck, WinSCP) direkt in wp-content/uploads/bap-downloads/ und registrierst sie danach einmal in der Mediathek (Plugin Add From Server oder wp media import), damit du eine Attachment ID bekommst.

Wenn dir SFTP unangenehm ist, nimm Weg A und melde dich bei uns, falls deine Datei das Limit sprengt — wir übernehmen das bei Bedarf am Telefon mit Bildschirmfreigabe.

Das Produktformular ausfüllen

Zurück ins Theme-Feature unter Design → Downloads, jetzt in den Tab Produkte. Beim ersten Öffnen ist die Liste leer, darunter der Block „Neues Produkt" mit genau fünf Feldern.

Name. Der Klartext-Name deines Produkts, z. B. Feierabendrezepte — 30 schnelle Alltags-Gerichte. Dieser Text taucht später in der Kauf-E-Mail als Produktname auf.

Slug. Der URL-freundliche Kurzname — nur Kleinbuchstaben, Zahlen, Bindestriche, keine Umlaute. In unserem Beispiel feierabendrezepte-30. Einmal vergeben, solltest du ihn nicht mehr ändern, sonst verlinken bestehende Posts ins Leere.

Preis-Anzeige. Achtung, hier ist ein häufiges Missverständnis: Das ist reiner Anzeigetext am Button, nicht der abgerechnete Betrag. Der tatsächlich abgebuchte Betrag kommt ausschließlich aus der Price ID in Stripe. Beide Werte solltest du synchron halten — sonst zahlen Käuferinnen einen anderen Betrag, als am Button stand.

Stripe Price ID. Die price_...-ID aus Lektion 02. Kein Leerzeichen davor, kein Leerzeichen danach. Mit prod_... anstelle von price_... bricht der Checkout stumm ab.

Attachment ID. Bei Weg A füllt das Formular sie automatisch, sobald du die Datei hochlädst. Bei Weg B kopierst du sie aus der Mediathek (in der Browser-URL steht upload.php?item=4218 — die Zahl hinter item= ist deine Attachment ID).

Speichern — und was das Theme prüft

Klick Produkt speichern. Das Theme holt über die Attachment ID den Dateipfad, vergleicht ihn gegen wp-content/uploads/bap-downloads/ und prüft, ob die Datei lesbar ist. Nur wenn beides stimmt, landet das Produkt in der Liste.

Liegt die Datei noch im normalen Mediathek-Pfad, bricht das Speichern mit einer roten Fehlermeldung ab: „Datei liegt unter … — erwartet wird ein Pfad unterhalb von … Bitte in das geschützte Verzeichnis verschieben und eine neue Attachment-ID eintragen." Das ist kein Schönheitsfehler, sondern eine absichtliche Schranke — das Theme lässt dich kein Produkt anlegen, dessen Datei öffentlich erreichbar wäre.

In dem Fall lädst du die Datei per Weg A neu hoch (das überschreibt die alte Referenz) und klickst erneut auf Speichern.

Sobald das Produkt in der Liste steht, zeigt das Theme neben dem Eintrag den fertigen Shortcode — z. B. [bap_buy product="feierabendrezepte-30"].

Den Buy-Button einbauen

Der Shortcode ist das einzige Stück Code, das du je anfassen musst, um den Kauf-Button irgendwo auftauchen zu lassen. Format immer gleich: [bap_buy product="DEIN-SLUG"].

Drei typische Orte:

  • Am Ende eines thematisch passenden Blog-Posts — Artikel über Meal Prep, darunter der Button zum Feierabendrezepte-PDF.
  • Auf einer eigenen Verkaufsseite — Landingpage mit Bildern, Beschreibung, FAQs, am Ende der Shortcode.
  • In einer Sidebar-Box — solange der Button nicht mit Werbebannern verschmilzt.

Das Theme macht aus dem Shortcode einen echten Button mit dem Text aus deinem Namen-Feld und der Preis-Anzeige. Ein Klick darauf löst serverseitig die Stripe-Checkout-Session aus.

Technisch kannst du mehrere [bap_buy]-Shortcodes auf einer Seite setzen. Didaktisch ist das meistens ein Fehler — ein Post, ein Produkt, ein Call-to-Action wirkt deutlich besser als drei Buttons nebeneinander.

Checkliste und Brücke zu Lektion 04

Checkliste mit den Schritten zur sauberen Produktanlage im Digital-Download-Feature

Was jetzt steht: Stripe-Keys eingetragen, Verbindungstest grün, PDF im geschützten Ordner mit gültiger Attachment ID, Produkt mit allen fünf Feldern gespeichert, Shortcode im Blog-Post eingebaut.

Was noch fehlt, bevor ein echter Kauf vollständig durchläuft: die Rückmeldung von Stripe an dein Blog. Ohne sie klickt die Käuferin auf Kaufen, bezahlt, landet auf der Danke-Seite — und danach passiert nichts. Keine Kauf-E-Mail, kein Eintrag im Käufe-Tab. Genau diese Brücke schließt Lektion 04 mit dem Stripe-Webhook.

Wenn du diese Lektion gelesen hast, markiere sie als abgeschlossen.