Wenn du "Stripe WordPress Plugin" googelst, findest du WP Simple Pay ($99+/Jahr), WooCommerce + Stripe Gateway (Plugin-Stack), oder WP Stripe Checkout (oft veraltet). Alles aufgebläht.
So integrieren wir Stripe in WordPress: schlank, schnell, ohne Plugin-Hölle.
Wann du WAS brauchst
Use-Case 1: Einfacher Bezahlbutton
"Buy Now" Button auf einer Landingpage. Lösung: Stripe Payment Links direkt aus dem Stripe-Dashboard. Kein Plugin nötig, nur ein normaler Link in WordPress.
Use-Case 2: Bezahl-Formular (Konsultation buchen, Webinar)
Form mit Daten + Bezahlung. Lösung: Ultimate Form Pro mit Stripe-Inline-Checkout. 17 KB Bundle, kein Redirect.
Use-Case 3: WooCommerce-Shop
Klassisches E-Commerce. Lösung: WooCommerce + Stripe Gateway (Free). Standardlösung, gut gewartet.
Use-Case 4: Subscription-SaaS auf WordPress
Mitgliedschaften, Abos. Lösung: Custom-Code mit Stripe-API direkt. Das bauen wir regelmäßig.
Stripe Integration: Custom-Code
Für alle die wirklich Custom gehen wollen: hier die Mini-Anleitung wie wir Stripe Payment-Intents in WordPress integrieren.
1. Stripe-Account einrichten
Account auf stripe.com erstellen, deutsche Geschäftsdaten eingeben (für SEPA-Lastschrift wichtig). Test-Keys aus Dashboard kopieren.
2. wp-config.php
define( 'STRIPE_KEY', 'pk_live_…' );
define( 'STRIPE_SECRET', 'sk_live_…' );3. PHP-Endpoint für Payment-Intent
function dws_create_payment_intent() {
\$amount = intval( \$_POST['amount'] ); // Cent
\$response = wp_remote_post( 'https://api.stripe.com/v1/payment_intents', [
'headers' => [ 'Authorization' => 'Bearer ' . STRIPE_SECRET ],
'body' => [
'amount' => \$amount,
'currency' => 'eur',
'automatic_payment_methods[enabled]' => 'true'
]
] );
wp_send_json( json_decode( wp_remote_retrieve_body( \$response ), true ) );
}
add_action( 'wp_ajax_create_payment_intent', 'dws_create_payment_intent' );
add_action( 'wp_ajax_nopriv_create_payment_intent', 'dws_create_payment_intent' );4. Frontend mit Stripe.js
const stripe = Stripe('pk_live_…');
const elements = stripe.elements({ clientSecret });
const paymentElement = elements.create('payment');
paymentElement.mount('#payment-element');
// Submit-Handler:
const { error } = await stripe.confirmPayment({ elements, confirmParams: { return_url: '/danke' } });5. Webhook-Handler für Bestellungs-Bestätigung
Wichtig: nicht auf Frontend-Success vertrauen, immer Webhook-Verify nutzen.
function dws_stripe_webhook() {
\$payload = file_get_contents( 'php://input' );
\$sig = \$_SERVER['HTTP_STRIPE_SIGNATURE'];
// Webhook-Signature verifizieren …
// Bei 'payment_intent.succeeded': Bestellung in DB schreiben + E-Mail senden
}
add_action( 'rest_api_init', function() {
register_rest_route( 'dws/v1', '/stripe-webhook', [ 'methods' => 'POST', 'callback' => 'dws_stripe_webhook', 'permission_callback' => '__return_true' ] );
});DSGVO-Hinweise
- AVV mit Stripe abschließen (im Stripe-Dashboard)
- Datenschutzerklärung um Stripe-Block ergänzen
- IP-Logging in Stripe-Dashboard begrenzen
- Bei B2C: Kunden-Daten nur für Auftrag verarbeiten, nicht für Marketing
Häufige Fehler
- Test-Keys in Production verwenden: schaltet Echte-Bezahlungen aus
- Webhook-Signature nicht verifizieren: Sicherheits-Albtraum
- Stripe.js direkt von CDN ohne SRI-Hash: DSGVO-Risiko
- Hardcoded Amounts im Frontend: User kann manipulieren
- Keine Rate-Limiting: Bot-Angriffe
Wann Custom-Code nicht lohnt
Wenn du nur ein Buy-Button brauchst: Stripe Payment Links. Keine Code-Zeile nötig. 5 Min Setup.
Wenn du WooCommerce-Shop hast: Standard-Plugin. Bewährt.
Custom-Code lohnt sich erst bei: speziellen Workflows, B2B-Verträgen, Multi-Step-Bezahlung, oder wenn du Frontend extrem schlank willst.
Wir machen das
Bei Delta Web Solution implementieren wir Stripe-Integrationen jeder Komplexität. Festpreis ab 1.500 € für Custom-Setups. Sprich mit uns.
Verwandt: Ultimate Form Pro mit Stripe · DSGVO-Checkliste