Werkstatt Kontakt / Termin
Bitte fülle die notwendigen Felder aus. Wir melden uns schnellstmöglich.
Vielen Dank! Deine Anfrage wurde übermittelt.
sanitize_text_field($_POST['vorname'] ?? ''),
'name' => sanitize_text_field($_POST['name'] ?? ''),
'firma' => sanitize_text_field($_POST['firma'] ?? ''),
'email' => sanitize_email($_POST['email'] ?? ''),
'telefon' => sanitize_text_field($_POST['telefon'] ?? ''),
'kennzeichen' => strtoupper(sanitize_text_field($_POST['kennzeichen'] ?? '')),
'vin' => strtoupper(sanitize_text_field($_POST['vin'] ?? '')),
'km' => isset($_POST['km']) ? absint($_POST['km']) : null,
'notizen' => sanitize_textarea_field($_POST['notizen'] ?? ''),
];
$allowed = ['TUEV','Achsvermessung','Service'];
$auswahl = array_values(array_intersect(
$allowed,
is_array($_POST['auswahl'] ?? null) ? array_map('sanitize_text_field', $_POST['auswahl']) : []
));
// Validierung
$err = [];
if ($v['vorname'] === '') $err[] = 'Bitte Vorname angeben.';
if ($v['name'] === '') $err[] = 'Bitte Name angeben.';
if ( ! is_email($v['email']) ) $err[] = 'Bitte gültige E-Mail angeben.';
if ($v['telefon'] === '' || ! preg_match('/^[0-9 +().\/-]{5,}$/', $v['telefon'])) $err[] = 'Bitte gültige Telefonnummer angeben.';
if ($v['kennzeichen'] === '') $err[] = 'Bitte Kennzeichen angeben.';
if ($v['vin'] === '') $err[] = 'Bitte Fahrgestellnummer angeben.';
if ($v['km'] === null) $err[] = 'Bitte Kilometerstand als Zahl angeben.';
if ($err) return wk_redirect_err($err);
// Mail
$to_override = ''; // optional z.B. "werkstatt@example.com"
$to = $to_override !== '' ? $to_override : get_option('admin_email');
$subject = '[Werkstatt-Kontakt] ' . ($v['kennzeichen'] ?: 'Anfrage') . ' – ' . $v['name'] . ', ' . $v['vorname'];
$lines = [
'Neue Anfrage: ' . wp_date('d.m.Y H:i'),
'Vorname: ' . $v['vorname'],
'Name: ' . $v['name'],
'Firma: ' . ($v['firma'] ?: '-'),
'E-Mail: ' . $v['email'],
'Telefon: ' . $v['telefon'],
'Kennzeichen: ' . $v['kennzeichen'],
'Fahrgestellnr.: ' . $v['vin'],
'Kilometerstand: ' . $v['km'],
'Schnellauswahl: ' . ($auswahl ? implode(', ', $auswahl) : '-'),
'Nachricht:',
$v['notizen'] !== '' ? $v['notizen'] : '-',
'',
'IP: ' . ($_SERVER['REMOTE_ADDR'] ?? 'n/a') . ' | UA: ' . ($_SERVER['HTTP_USER_AGENT'] ?? 'n/a'),
];
$headers = [
'Content-Type: text/plain; charset=UTF-8',
'Reply-To: ' . $v['email'],
];
$sent = wp_mail($to, $subject, implode("\n", $lines), $headers);
// CSV-Log im Uploads-Ordner
$up = wp_upload_dir();
if (empty($up['error'])) {
$csv = trailingslashit($up['basedir']) . 'werkstatt-kontakte.csv';
$row = [
wp_date('c'), $v['vorname'], $v['name'], $v['firma'], $v['email'], $v['telefon'],
$v['kennzeichen'], $v['vin'], (string)$v['km'], implode('|', $auswahl),
preg_replace("/[\r\n]+/", ' ', $v['notizen'])
];
if ($fh = @fopen($csv, file_exists($csv) ? 'a' : 'w')) { fputcsv($fh, $row, ';'); fclose($fh); }
}
// Redirect zurück
$ref = wp_get_referer() ?: home_url('/');
wp_safe_redirect( add_query_arg( $sent ? 'wk_ok' : 'wk_ok', 1, $ref ) ); // auch bei Mail-Fehler OK zeigen
exit;
}
function wk_redirect_err(array $errs) {
$ref = wp_get_referer() ?: home_url('/');
// Fehlertexte kurz halten
$compact = array_map(function($e){ return mb_substr($e,0,120); }, $errs);
wp_safe_redirect( add_query_arg( 'wk_err', rawurlencode(implode(',', $compact)), $ref ) );
exit;
}