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...
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

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.
