Ziel: Kunde füllt Formular aus – Du bekommst fertiges Angebot
Du willst:
- weniger manuelles Schreiben
- Angebote als PDF oder HTML
- dynamisch je nach Eingabe
- direkt per E-Mail ans Team oder den Kunden
Funktioniert mit WordPress, einem Formular-Plugin (z. B. Gravity Forms, Contact Form 7, WPForms)
und etwas eigener PHP-Logik.
Ich zeig Dir ein Beispiel mit admin-post.php
, damit es überall läuft.
Formular erstellen
Du baust ein klassisches HTML-Formular mit POST-Methode.
<form action="<?php echo esc_url(admin_url('admin-post.php')); ?>" method="POST">
<input type="hidden" name="action" value="ds_angebot_absenden">
<input type="text" name="firma" placeholder="Firmenname" required>
<input type="email" name="email" placeholder="E-Mail" required>
<select name="paket">
<option value="basic">Basic</option>
<option value="pro">Pro</option>
</select>
<textarea name="bemerkung" placeholder="Sonstige Wünsche"></textarea>
<button type="submit">Angebot anfordern</button>
</form>
Verarbeitung: admin_post-Hook
add_action('admin_post_nopriv_ds_angebot_absenden', 'ds_angebot_erzeugen');
add_action('admin_post_ds_angebot_absenden', 'ds_angebot_erzeugen');
function ds_angebot_erzeugen() {
$firma = sanitize_text_field($_POST['firma']);
$email = sanitize_email($_POST['email']);
$paket = sanitize_text_field($_POST['paket']);
$bemerkung = sanitize_textarea_field($_POST['bemerkung']);
$preis = ds_preis_berechnen($paket);
$angebot = ds_angebot_template([
'firma' => $firma,
'paket' => ucfirst($paket),
'preis' => number_format($preis, 2, ',', '.') . ' €',
'bemerkung' => $bemerkung,
'datum' => date('d.m.Y'),
]);
wp_mail($email, 'Ihr Angebot', $angebot, ['Content-Type: text/html']);
wp_redirect(home_url('/danke/'));
exit;
}
Angebotslogik: Preis berechnen
function ds_preis_berechnen($paket) {
$preise = [
'basic' => 499,
'pro' => 899,
];
return $preise[$paket] ?? 0;
}
Angebotslayout als HTML
function ds_angebot_template($data) {
ob_start();
?>
<h2>Angebot vom <?php echo esc_html($data['datum']); ?></h2>
<p><strong>Firma:</strong> <?php echo esc_html($data['firma']); ?></p>
<p><strong>Gewähltes Paket:</strong> <?php echo esc_html($data['paket']); ?></p>
<p><strong>Preis:</strong> <?php echo esc_html($data['preis']); ?></p>
<?php if ($data['bemerkung']) : ?>
<p><strong>Bemerkung:</strong><br><?php echo nl2br(esc_html($data['bemerkung'])); ?></p>
<?php endif; ?>
<p>Dieses Angebot ist 14 Tage gültig.</p>
<?php
return ob_get_clean();
}
Optional: PDF statt HTML
Du kannst dompdf/dompdf
per Composer installieren.
use Dompdf\Dompdf;
function ds_angebot_als_pdf($html) {
$dompdf = new Dompdf();
$dompdf->loadHtml($html);
$dompdf->render();
return $dompdf->output();
}
Dann die Datei anhängen statt HTML-Mail.
$attachment = ds_angebot_als_pdf($angebot);
$tmp_file = tempnam(sys_get_temp_dir(), 'angebot_') . '.pdf';
file_put_contents($tmp_file, $attachment);
wp_mail($email, 'Ihr Angebot', 'Im Anhang finden Sie Ihr Angebot.', [
'Content-Type: text/plain',
], [$tmp_file]);
Erweiterungen für KMU
Funktion | Umsetzungsidee |
---|---|
Angebot speichern | als CPT „angebot“ |
Statusverfolgung | „angefragt“, „angenommen“ usw. |
Dashboard für Admins | WP-Admin-Übersicht |
Folgeaktionen | z. B. automatischer Rückruf |
CRM-Anbindung | REST-API zu externem System |
Mein Fazit
Formular + PHP + ein bisschen Logik = vollautomatisches Angebotssystem.
Läuft in Deinem WordPress, DSGVO-konform, ohne SaaS-Kosten.
No responses yet