Home / Admin / Risikoanalyse Formular
Duplicate Snippet

Embed Snippet on Your Site

Risikoanalyse Formular

6) Wichtiger Hinweis zu Elementor

Dieses Formular ist in Elementor eingebettet, aber kein natives Elementor-Pro-Formularwidget.
Der Vorteil: Es ist sofort als kompletter Code nutzbar.
Der Nachteil: Die Leads landen nicht automatisch in den Elementor-Formular-Einträgen.

Wenn du die Anfragen zusätzlich im Backend speichern willst, gibt es drei gute Wege:

per Mailweiterleitung
per CRM/Webhook
per zusätzlichem Custom Post Type / Datenbankeintrag

Empfehlung für deinen Einsatz

Für deine Seite würde ich dieses Formular:

auf der Startseite im Bereich Kundenzufriedenheit / Beratung
auf einer eigenen Landingpage Risikoanalyse anfordern
und zusätzlich im Sticky-CTA oder als Popup

automatischer Bestätigungsmail an den Anfragenden
Speicherung in der WordPress-Datenbank
Admin-Menü zur Ansicht
CSV-Export

Detlef Simon
<10
Code Preview
php
<?php
/**
 * Gewerbe Risikoanalyse Formular
 * Shortcode: [risikoanalyse_formular]
 * WPCode-kompatibel
 * CSS/JS sauber per wp_enqueue eingebunden
 */
if (!defined('ABSPATH')) {
	exit;
}
if (!defined('GVS_RA_TABLE')) {
	define('GVS_RA_TABLE', 'gvs_risikoanalyse_anfragen');
}
/**
 * DB-Tabelle anlegen
 */
if (!function_exists('gvs_ra_maybe_create_table')) {
	add_action('init', 'gvs_ra_maybe_create_table');
	function gvs_ra_maybe_create_table() {
		global $wpdb;
		$table_name = $wpdb->prefix . GVS_RA_TABLE;
		$charset_collate = $wpdb->get_charset_collate();
		$sql = "CREATE TABLE IF NOT EXISTS {$table_name} (
			id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
			created_at DATETIME NOT NULL,
			branche VARCHAR(255) DEFAULT '',
			analysewunsch VARCHAR(255) DEFAULT '',
			versicherungsbestand VARCHAR(255) DEFAULT '',
			firmenname VARCHAR(255) DEFAULT '',
			plz VARCHAR(20) DEFAULT '',
			mitarbeiterzahl VARCHAR(50) DEFAULT '',
			jahresumsatz VARCHAR(100) DEFAULT '',
			unternehmensalter VARCHAR(100) DEFAULT '',
			taetigkeitsorte LONGTEXT NULL,
			betriebliche_risiken LONGTEXT NULL,
			pruefbereiche LONGTEXT NULL,
			anfragegrund VARCHAR(255) DEFAULT '',
			besonderheiten LONGTEXT NULL,
			entscheidungszeitraum VARCHAR(255) DEFAULT '',
			ansprechpartner VARCHAR(255) DEFAULT '',
			email VARCHAR(255) DEFAULT '',
			telefon VARCHAR(100) DEFAULT '',
			kontaktart VARCHAR(100) DEFAULT '',
			erreichbarkeit VARCHAR(100) DEFAULT '',
			einwilligung_analyse VARCHAR(10) DEFAULT '',
			datenschutz VARCHAR(10) DEFAULT '',
			ip_adresse VARCHAR(100) DEFAULT '',
			user_agent LONGTEXT NULL,
			PRIMARY KEY (id)
		) {$charset_collate};";
		require_once ABSPATH . 'wp-admin/includes/upgrade.php';
		dbDelta($sql);
	}
}
/**
 * Assets registrieren
 */
if (!function_exists('gvs_ra_register_assets')) {
	add_action('wp_enqueue_scripts', 'gvs_ra_register_assets');
	function gvs_ra_register_assets() {
		$css = '
		.gvs-risikoanalyse-wrap{max-width:860px;margin:0 auto;font-family:inherit}
		.gvs-risikoanalyse-card{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:28px;box-shadow:0 10px 30px rgba(0,0,0,.05)}
		.gvs-risikoanalyse-head h2{margin:0 0 8px;font-size:30px;line-height:1.2}
		.gvs-risikoanalyse-head p{margin:0 0 18px;color:#4b5563}
		.gvs-badges{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}
		.gvs-badge{background:#f3f4f6;padding:8px 12px;border-radius:999px;font-size:14px}
		.gvs-progress{display:flex;gap:8px;margin:0 0 24px}
		.gvs-progress-step{height:8px;flex:1;background:#e5e7eb;border-radius:999px}
		.gvs-progress-step.active{background:#1d4ed8}
		.gvs-step{display:none}
		.gvs-step.active{display:block}
		.gvs-step-title{font-size:22px;margin:0 0 8px}
		.gvs-step-desc{color:#6b7280;margin:0 0 18px}
		.gvs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
		.gvs-col-100{grid-column:1/-1}
		.gvs-field label{display:block;font-weight:600;margin-bottom:6px}
		.gvs-field input[type="text"],
		.gvs-field input[type="email"],
		.gvs-field input[type="tel"],
		.gvs-field select,
		.gvs-field textarea{width:100%;border:1px solid #d1d5db;border-radius:10px;padding:12px 14px;font-size:15px;background:#fff}
		.gvs-field textarea{min-height:120px;resize:vertical}
		.gvs-checkbox-list{display:grid;gap:10px;margin-top:4px}
		.gvs-checkbox-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid #e5e7eb;border-radius:10px;background:#fafafa}
		.gvs-nav{display:flex;justify-content:space-between;gap:12px;margin-top:24px}
		.gvs-btn{border:0;border-radius:10px;padding:13px 18px;font-size:15px;font-weight:600;cursor:pointer}
		.gvs-btn-prev{background:#e5e7eb}
		.gvs-btn-next,.gvs-btn-submit{background:#1d4ed8;color:#fff}
		.gvs-alert{padding:14px 16px;border-radius:10px;margin-bottom:18px}
		.gvs-alert-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}
		.gvs-alert-success{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}
		.gvs-note{font-size:13px;color:#6b7280;margin-top:8px}
		@media (max-width:767px){
			.gvs-grid{grid-template-columns:1fr}
		}';
		$js = "
		document.addEventListener('DOMContentLoaded', function () {
			document.querySelectorAll('.gvs-multistep-form').forEach(function(form) {
				const steps = Array.from(form.querySelectorAll('.gvs-step'));
				const progressSteps = Array.from(form.querySelectorAll('.gvs-progress-step'));
				let currentStep = 0;
				function showStep(index) {
					steps.forEach((step, i) => step.classList.toggle('active', i === index));
					progressSteps.forEach((bar, i) => bar.classList.toggle('active', i <= index));
					currentStep = index;
				}
				function validateStep(stepIndex) {
					const step = steps[stepIndex];
					let valid = true;
					const requiredFields = step.querySelectorAll('[required]');
					requiredFields.forEach(field => {
						if (field.type === 'checkbox') {
							if (!field.checked) valid = false;
						} else if (!String(field.value).trim()) {
							valid = false;
						}
					});
					if (stepIndex === 2) {
						const taetigkeitsorte = step.querySelectorAll('input[name=\"taetigkeitsorte[]\"]:checked');
						const pruefbereiche = step.querySelectorAll('input[name=\"pruefbereiche[]\"]:checked');
						if (taetigkeitsorte.length === 0 || pruefbereiche.length === 0) {
							valid = false;
						}
					}
					if (!valid) {
						alert('Bitte füllen Sie alle erforderlichen Felder in diesem Schritt aus.');
					}
					return valid;
				}
				form.addEventListener('click', function (e) {
					if (e.target.classList.contains('gvs-btn-next')) {
						e.preventDefault();
						if (validateStep(currentStep) && currentStep < steps.length - 1) {
							showStep(currentStep + 1);
						}
					}
					if (e.target.classList.contains('gvs-btn-prev')) {
						e.preventDefault();
						if (currentStep > 0) {
							showStep(currentStep - 1);
						}
					}
				});
			});
		});
		";
		wp_register_style('gvs-ra-style', false, array(), '1.0.0');
		wp_enqueue_style('gvs-ra-style');
		wp_add_inline_style('gvs-ra-style', $css);
		wp_register_script('gvs-ra-script', '', array(), '1.0.0', true);
		wp_enqueue_script('gvs-ra-script');
		wp_add_inline_script('gvs-ra-script', $js);
	}
}
/**
 * Shortcode
 */
if (!function_exists('gvs_risikoanalyse_formular_shortcode')) {
	add_shortcode('risikoanalyse_formular', 'gvs_risikoanalyse_formular_shortcode');
	function gvs_risikoanalyse_formular_shortcode() {
		ob_start();
		$success = false;
		$errors  = array();
		if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['gvs_risikoanalyse_nonce'])) {
			if (!wp_verify_nonce(sanitize_text_field(wp_unslash($_POST['gvs_risikoanalyse_nonce'])), 'gvs_risikoanalyse_submit')) {
				$errors[] = 'Die Sicherheitsprüfung ist fehlgeschlagen. Bitte laden Sie die Seite neu.';
			} else {
				$branche               = isset($_POST['branche']) ? sanitize_text_field(wp_unslash($_POST['branche'])) : '';
				$analysewunsch         = isset($_POST['analysewunsch']) ? sanitize_text_field(wp_unslash($_POST['analysewunsch'])) : '';
				$versicherungsbestand  = isset($_POST['versicherungsbestand']) ? sanitize_text_field(wp_unslash($_POST['versicherungsbestand'])) : '';
				$firmenname            = isset($_POST['firmenname']) ? sanitize_text_field(wp_unslash($_POST['firmenname'])) : '';
				$plz                   = isset($_POST['plz']) ? sanitize_text_field(wp_unslash($_POST['plz'])) : '';
				$mitarbeiterzahl       = isset($_POST['mitarbeiterzahl']) ? sanitize_text_field(wp_unslash($_POST['mitarbeiterzahl'])) : '';
				$jahresumsatz          = isset($_POST['jahresumsatz']) ? sanitize_text_field(wp_unslash($_POST['jahresumsatz'])) : '';
				$unternehmensalter     = isset($_POST['unternehmensalter']) ? sanitize_text_field(wp_unslash($_POST['unternehmensalter'])) : '';
				$taetigkeitsorte       = isset($_POST['taetigkeitsorte']) ? array_map('sanitize_text_field', wp_unslash($_POST['taetigkeitsorte'])) : array();
				$betriebliche_risiken  = isset($_POST['betriebliche_risiken']) ? array_map('sanitize_text_field', wp_unslash($_POST['betriebliche_risiken'])) : array();
				$pruefbereiche         = isset($_POST['pruefbereiche']) ? array_map('sanitize_text_field', wp_unslash($_POST['pruefbereiche'])) : array();
				$anfragegrund          = isset($_POST['anfragegrund']) ? sanitize_text_field(wp_unslash($_POST['anfragegrund'])) : '';
				$besonderheiten        = isset($_POST['besonderheiten']) ? sanitize_textarea_field(wp_unslash($_POST['besonderheiten'])) : '';
				$entscheidungszeitraum = isset($_POST['entscheidungszeitraum']) ? sanitize_text_field(wp_unslash($_POST['entscheidungszeitraum'])) : '';
				$ansprechpartner       = isset($_POST['ansprechpartner']) ? sanitize_text_field(wp_unslash($_POST['ansprechpartner'])) : '';
				$email                 = isset($_POST['email']) ? sanitize_email(wp_unslash($_POST['email'])) : '';
				$telefon               = isset($_POST['telefon']) ? sanitize_text_field(wp_unslash($_POST['telefon'])) : '';
				$kontaktart            = isset($_POST['kontaktart']) ? sanitize_text_field(wp_unslash($_POST['kontaktart'])) : '';
				$erreichbarkeit        = isset($_POST['erreichbarkeit']) ? sanitize_text_field(wp_unslash($_POST['erreichbarkeit'])) : '';
				$einwilligung_analyse  = isset($_POST['einwilligung_analyse']) ? 'Ja' : 'Nein';
				$datenschutz           = isset($_POST['datenschutz']) ? 'Ja' : 'Nein';
				if (empty($branche)) $errors[] = 'Bitte wählen Sie eine Branche aus.';
				if (empty($analysewunsch)) $errors[] = 'Bitte wählen Sie aus, was geprüft werden soll.';
				if (empty($versicherungsbestand)) $errors[] = 'Bitte geben Sie an, ob bereits Versicherungen vorhanden sind.';
				if (empty($firmenname)) $errors[] = 'Bitte geben Sie den Firmennamen ein.';
				if (empty($plz)) $errors[] = 'Bitte geben Sie die Postleitzahl ein.';
				if (empty($mitarbeiterzahl)) $errors[] = 'Bitte wählen Sie die Mitarbeiterzahl aus.';
				if (empty($taetigkeitsorte)) $errors[] = 'Bitte wählen Sie mindestens einen Tätigkeitsort aus.';
				if (empty($pruefbereiche)) $errors[] = 'Bitte wählen Sie mindestens einen Prüfbereich aus.';
				if (empty($anfragegrund)) $errors[] = 'Bitte wählen Sie einen Anfragegrund aus.';
				if (empty($ansprechpartner)) $errors[] = 'Bitte geben Sie einen Ansprechpartner ein.';
				if (empty($email) || !is_email($email)) $errors[] = 'Bitte geben Sie eine gültige E-Mail-Adresse ein.';
				if (empty($telefon)) $errors[] = 'Bitte geben Sie eine Telefonnummer ein.';
				if ($einwilligung_analyse !== 'Ja') $errors[] = 'Bitte bestätigen Sie die Risikoanalyse.';
				if ($datenschutz !== 'Ja') $errors[] = 'Bitte stimmen Sie der Datenschutzerklärung zu.';
				if (empty($errors)) {
					global $wpdb;
					$table_name = $wpdb->prefix . GVS_RA_TABLE;
					$wpdb->insert(
						$table_name,
						array(
							'created_at'            => current_time('mysql'),
							'branche'               => $branche,
							'analysewunsch'         => $analysewunsch,
							'versicherungsbestand'  => $versicherungsbestand,
							'firmenname'            => $firmenname,
							'plz'                   => $plz,
							'mitarbeiterzahl'       => $mitarbeiterzahl,
							'jahresumsatz'          => $jahresumsatz,
							'unternehmensalter'     => $unternehmensalter,
							'taetigkeitsorte'       => wp_json_encode($taetigkeitsorte),
							'betriebliche_risiken'  => wp_json_encode($betriebliche_risiken),
							'pruefbereiche'         => wp_json_encode($pruefbereiche),
							'anfragegrund'          => $anfragegrund,
							'besonderheiten'        => $besonderheiten,
							'entscheidungszeitraum' => $entscheidungszeitraum,
							'ansprechpartner'       => $ansprechpartner,
							'email'                 => $email,
							'telefon'               => $telefon,
							'kontaktart'            => $kontaktart,
							'erreichbarkeit'        => $erreichbarkeit,
							'einwilligung_analyse'  => $einwilligung_analyse,
							'datenschutz'           => $datenschutz,
							'ip_adresse'            => isset($_SERVER['REMOTE_ADDR']) ? sanitize_text_field(wp_unslash($_SERVER['REMOTE_ADDR'])) : '',
							'user_agent'            => isset($_SERVER['HTTP_USER_AGENT']) ? sanitize_text_field(wp_unslash($_SERVER['HTTP_USER_AGENT'])) : '',
						)
					);
					$to_admin = '[email protected]';
					$subject_admin = 'Neue Anfrage: Risikoanalyse Gewerbe – ' . $firmenname;
					$message_admin  = "Neue Anfrage zur Risikoanalyse\n\n";
					$message_admin .= "Branche: {$branche}\n";
					$message_admin .= "Analysewunsch: {$analysewunsch}\n";
					$message_admin .= "Versicherungsbestand: {$versicherungsbestand}\n";
					$message_admin .= "Firmenname: {$firmenname}\n";
					$message_admin .= "Postleitzahl: {$plz}\n";
					$message_admin .= "Mitarbeiterzahl: {$mitarbeiterzahl}\n";
					$message_admin .= "Jahresumsatz: {$jahresumsatz}\n";
					$message_admin .= "Unternehmensalter: {$unternehmensalter}\n";
					$message_admin .= "Tätigkeitsorte: " . implode(', ', $taetigkeitsorte) . "\n";
					$message_admin .= "Betriebliche Risiken: " . implode(', ', $betriebliche_risiken) . "\n";
					$message_admin .= "Prüfbereiche: " . implode(', ', $pruefbereiche) . "\n";
					$message_admin .= "Anfragegrund: {$anfragegrund}\n";
					$message_admin .= "Besonderheiten: {$besonderheiten}\n";
					$message_admin .= "Entscheidungszeitraum: {$entscheidungszeitraum}\n";
					$message_admin .= "Ansprechpartner: {$ansprechpartner}\n";
					$message_admin .= "E-Mail: {$email}\n";
					$message_admin .= "Telefon: {$telefon}\n";
					$message_admin .= "Kontaktart: {$kontaktart}\n";
					$message_admin .= "Erreichbarkeit: {$erreichbarkeit}\n";
					$headers_admin = array(
						'Content-Type: text/plain; charset=UTF-8',
						'Reply-To: ' . $ansprechpartner . ' <' . $email . '>',
					);
					$mail_admin_sent = wp_mail($to_admin, $subject_admin, $message_admin, $headers_admin);
					$subject_customer = 'Ihre Anfrage zur Risikoanalyse ist bei uns eingegangen';
					$message_customer  = "Guten Tag {$ansprechpartner},\n\n";
					$message_customer .= "vielen Dank für Ihre Anfrage zur kostenlosen Risikoanalyse Ihres Gewerbebetriebs.\n\n";
					$message_customer .= "Wir haben Ihre Angaben erhalten und prüfen diese nun persönlich.\n";
					$message_customer .= "Anschließend melden wir uns zeitnah bei Ihnen zurück.\n\n";
					$message_customer .= "Ihre übermittelten Eckdaten:\n";
					$message_customer .= "- Firma: {$firmenname}\n";
					$message_customer .= "- Branche: {$branche}\n";
					$message_customer .= "- Analysewunsch: {$analysewunsch}\n";
					$message_customer .= "- Ansprechpartner: {$ansprechpartner}\n";
					$message_customer .= "- Telefonnummer: {$telefon}\n";
					$message_customer .= "- E-Mail: {$email}\n\n";
					$message_customer .= "Sollten Sie zwischenzeitlich Fragen haben, antworten Sie einfach auf diese E-Mail.\n\n";
					$message_customer .= "Freundliche Grüße\n";
					$message_customer .= "Detlef Simon\n";
					$message_customer .= "gewerbeversicherungen-simon.de\n";
					$headers_customer = array(
						'Content-Type: text/plain; charset=UTF-8',
						'Reply-To: Detlef Simon <[email protected]>',
					);
					wp_mail($email, $subject_customer, $message_customer, $headers_customer);
					if ($mail_admin_sent) {
						$success = true;
					} else {
						$errors[] = 'Die Anfrage konnte nicht versendet werden. Bitte prüfen Sie die Mail-Konfiguration.';
					}
				}
			}
		}
		?>
		<div class="gvs-risikoanalyse-wrap">
			<div class="gvs-risikoanalyse-card">
				<div class="gvs-risikoanalyse-head">
					<h2>Kostenlose Risikoanalyse für Ihren Gewerbebetrieb</h2>
					<p>Erhalten Sie eine erste Einschätzung, welche Risiken für Ihren Betrieb besonders relevant sind und wo Absicherungslücken bestehen.</p>
					<div class="gvs-badges">
						<span class="gvs-badge">Kostenfrei & unverbindlich</span>
						<span class="gvs-badge">Speziell für Gewerbe</span>
						<span class="gvs-badge">Persönliche Rückmeldung</span>
						<span class="gvs-badge">Dauer: ca. 2 Minuten</span>
					</div>
				</div>
				<?php if ($success) : ?>
					<div class="gvs-alert gvs-alert-success">
						<strong>Vielen Dank für Ihre Anfrage.</strong><br>
						Ihre Angaben zur Risikoanalyse wurden erfolgreich übermittelt. Sie erhalten zusätzlich eine Bestätigung per E-Mail.
					</div>
				<?php else : ?>
					<?php if (!empty($errors)) : ?>
						<div class="gvs-alert gvs-alert-error">
							<strong>Bitte prüfen Sie Ihre Eingaben:</strong>
							<ul style="margin:8px 0 0 18px;">
								<?php foreach ($errors as $error) : ?>
									<li><?php echo esc_html($error); ?></li>
								<?php endforeach; ?>
							</ul>
						</div>
					<?php endif; ?>
					<form method="post" class="gvs-multistep-form" novalidate>
						<?php wp_nonce_field('gvs_risikoanalyse_submit', 'gvs_risikoanalyse_nonce'); ?>
						<div class="gvs-progress" aria-hidden="true">
							<div class="gvs-progress-step active"></div>
							<div class="gvs-progress-step"></div>
							<div class="gvs-progress-step"></div>
							<div class="gvs-progress-step"></div>
							<div class="gvs-progress-step"></div>
						</div>
						<div class="gvs-step active" data-step="1">
							<h3 class="gvs-step-title">Ihr Betrieb auf einen Blick</h3>
							<p class="gvs-step-desc">Mit ein paar kurzen Angaben können wir Ihre Anfrage besser einordnen.</p>
							<div class="gvs-grid">
								<div class="gvs-field gvs-col-100">
									<label for="branche">Branche *</label>
									<select id="branche" name="branche" required>
										<option value="">Bitte Branche auswählen</option>
										<option>Handwerk</option>
										<option>Baugewerbe</option>
										<option>Hotel / Gastronomie</option>
										<option>Dienstleistung</option>
										<option>Handel</option>
										<option>Sonstiges Gewerbe</option>
									</select>
								</div>
								<div class="gvs-field gvs-col-100">
									<label for="analysewunsch">Was möchten Sie prüfen lassen? *</label>
									<select id="analysewunsch" name="analysewunsch" required>
										<option value="">Bitte Auswahl treffen</option>
										<option>Gesamten Versicherungsschutz prüfen</option>
										<option>Bestehende Verträge vergleichen</option>
										<option>Versicherungslücken aufdecken</option>
										<option>Absicherung für Neugründung prüfen</option>
										<option>Zweitmeinung zu bestehenden Policen</option>
									</select>
								</div>
								<div class="gvs-field gvs-col-100">
									<label for="versicherungsbestand">Sind bereits Gewerbeversicherungen vorhanden? *</label>
									<select id="versicherungsbestand" name="versicherungsbestand" required>
										<option value="">Bitte auswählen</option>
										<option>Ja, mehrere Verträge</option>
										<option>Teilweise</option>
										<option>Nein</option>
										<option>Weiß ich nicht genau</option>
									</select>
								</div>
							</div>
							<div class="gvs-nav">
								<span></span>
								<button type="button" class="gvs-btn gvs-btn-next">Weiter zur Betriebsanalyse</button>
							</div>
						</div>
						<div class="gvs-step" data-step="2">
							<h3 class="gvs-step-title">Angaben zu Ihrem Unternehmen</h3>
							<p class="gvs-step-desc">Diese Informationen helfen bei der ersten Risikoeinschätzung.</p>
							<div class="gvs-grid">
								<div class="gvs-field gvs-col-100">
									<label for="firmenname">Firmenname *</label>
									<input type="text" id="firmenname" name="firmenname" placeholder="z. B. Muster GmbH" required>
								</div>
								<div class="gvs-field">
									<label for="plz">Postleitzahl *</label>
									<input type="text" id="plz" name="plz" placeholder="z. B. 10115" required>
								</div>
								<div class="gvs-field">
									<label for="mitarbeiterzahl">Anzahl der Mitarbeiter *</label>
									<select id="mitarbeiterzahl" name="mitarbeiterzahl" required>
										<option value="">Bitte auswählen</option>
										<option>1</option>
										<option>2–5</option>
										<option>6–10</option>
										<option>11–25</option>
										<option>26–50</option>
										<optionber 50</option>
									</select>
								</div>
								<div class="gvs-field">
									<label for="jahresumsatz">Jahresumsatz</label>
									<select id="jahresumsatz" name="jahresumsatz">
										<option value="">Bitte auswählen</option>
										<option>bis 100.000 €</option>
										<option>100.000 € bis 500.000 €</option>
										<option>500.000 € bis 1 Mio. €</option>
										<option>1 Mio. € bis 5 Mio. €</option>
										<optionber 5 Mio. €</option>
										<option>keine Angabe</option>
									</select>
								</div>
								<div class="gvs-field">
									<label for="unternehmensalter">Seit wann besteht Ihr Unternehmen?</label>
									<select id="unternehmensalter" name="unternehmensalter">
										<option value="">Bitte auswählen</option>
										<option>Gründung geplant</option>
										<option>unter 1 Jahr</option>
										<option>1–5 Jahre</option>
										<optionber 5 Jahre</option>
									</select>
								</div>
							</div>
							<div class="gvs-nav">
								<button type="button" class="gvs-btn gvs-btn-prev">Zurück</button>
								<button type="button" class="gvs-btn gvs-btn-next">Weiter zu den Risiken</button>
							</div>
						</div>
						<div class="gvs-step" data-step="3">
							<h3 class="gvs-step-title">Welche Risiken treffen auf Ihren Betrieb zu?</h3>
							<p class="gvs-step-desc">Mehrfachauswahl möglich.</p>
							<div class="gvs-grid">
								<div class="gvs-field gvs-col-100">
									<label>Wo ist Ihr Betrieb hauptsächlich tätig? *</label>
									<div class="gvs-checkbox-list">
										<label class="gvs-checkbox-item"><input type="checkbox" name="taetigkeitsorte[]" value="Eigene Betriebsräume / Werkstatt"> Eigene Betriebsräume / Werkstatt</label>
										<label class="gvs-checkbox-item"><input type="checkbox" name="taetigkeitsorte[]" value="Baustellen"> Baustellen</label>
										<label class="gvs-checkbox-item"><input type="checkbox" name="taetigkeitsorte[]" value="Beim Kunden vor Ort"> Beim Kunden vor Ort</label>
										<label class="gvs-checkbox-item"><input type="checkbox" name="taetigkeitsorte[]" value="Büro / Verwaltung"> Büro / Verwaltung</label>
										<label class="gvs-checkbox-item"><input type="checkbox" name="taetigkeitsorte[]" value="Hotel / Gastbetrieb"> Hotel / Gastbetrieb</label>
										<label class="gvs-checkbox-item"><input type="checkbox" name="taetigkeitsorte[]" value="Lager / Warenbestand"> Lager / Warenbestand</label>
									</div>
								</div>
								<div class="gvs-field gvs-col-100">
									<label>Welche betrieblichen Risiken sind relevant?</label>
									<div class="gvs-checkbox-list">
										<label class="gvs-checkbox-item"><input type="checkbox" name="betriebliche_risiken[]" value="Kundenverkehr in den eigenen Räumen"> Kundenverkehr in den eigenen Räumen</label>
										<label class="gvs-checkbox-item"><input type="checkbox" name="betriebliche_risiken[]" value="Einsatz von Maschinen oder technischen Anlagen"> Einsatz von Maschinen oder technischen Anlagen</label>
										<label class="gvs-checkbox-item"><input type="checkbox" name="betriebliche_risiken[]" value="Arbeiten mit erhöhtem Haftungsrisiko"> Arbeiten mit erhöhtem Haftungsrisiko</label>
										<label class="gvs-checkbox-item"><input type="checkbox" name="betriebliche_risiken[]" value="Nutzung von Firmenfahrzeugen"> Nutzung von Firmenfahrzeugen</label>
										<label class="gvs-checkbox-item"><input type="checkbox" name="betriebliche_risiken[]" value="Elektronik / Kassensysteme / IT"> Elektronik / Kassensysteme / IT</label>
										<label class="gvs-checkbox-item"><input type="checkbox" name="betriebliche_risiken[]" value="Digitale Kundendaten oder Buchungssysteme"> Digitale Kundendaten oder Buchungssysteme</label>
										<label class="gvs-checkbox-item"><input type="checkbox" name="betriebliche_risiken[]" value="Teure Werkzeuge oder Betriebseinrichtung"> Teure Werkzeuge oder Betriebseinrichtung</label>
										<label class="gvs-checkbox-item"><input type="checkbox" name="betriebliche_risiken[]" value="Ausfallrisiko durch Feuer, Wasser oder Einbruch"> Ausfallrisiko durch Feuer, Wasser oder Einbruch</label>
									</div>
								</div>
								<div class="gvs-field gvs-col-100">
									<label>Welche Versicherungsbereiche sollen geprüft werden? *</label>
									<div class="gvs-checkbox-list">
										<label class="gvs-checkbox-item"><input type="checkbox" name="pruefbereiche[]" value="Betriebshaftpflicht"> Betriebshaftpflicht</label>
										<label class="gvs-checkbox-item"><input type="checkbox" name="pruefbereiche[]" value="Inhaltsversicherung"> Inhaltsversicherung</label>
										<label class="gvs-checkbox-item"><input type="checkbox" name="pruefbereiche[]" value="Maschinenversicherung"> Maschinenversicherung</label>
										<label class="gvs-checkbox-item"><input type="checkbox" name="pruefbereiche[]" value="Elektronikversicherung"> Elektronikversicherung</label>
										<label class="gvs-checkbox-item"><input type="checkbox" name="pruefbereiche[]" value="Cyberversicherung"> Cyberversicherung</label>
										<label class="gvs-checkbox-item"><input type="checkbox" name="pruefbereiche[]" value="Rechtsschutz"> Rechtsschutz</label>
										<label class="gvs-checkbox-item"><input type="checkbox" name="pruefbereiche[]" value="Betriebsunterbrechung"> Betriebsunterbrechung</label>
										<label class="gvs-checkbox-item"><input type="checkbox" name="pruefbereiche[]" value="Komplette Gesamteinschätzung"> Komplette Gesamteinschätzung</label>
									</div>
								</div>
							</div>
							<div class="gvs-nav">
								<button type="button" class="gvs-btn gvs-btn-prev">Zurück</button>
								<button type="button" class="gvs-btn gvs-btn-next">Weiter zur aktuellen Situation</button>
							</div>
						</div>
						<div class="gvs-step" data-step="4">
							<h3 class="gvs-step-title">Was ist der Anlass Ihrer Anfrage?</h3>
							<p class="gvs-step-desc">So können wir Ihre Risikoanalyse besser vorbereiten.</p>
							<div class="gvs-grid">
								<div class="gvs-field gvs-col-100">
									<label for="anfragegrund">Was ist der Hauptgrund für Ihre Anfrage? *</label>
									<select id="anfragegrund" name="anfragegrund" required>
										<option value="">Bitte auswählen</option>
										<option>Ich möchte meinen Versicherungsschutz prüfen lassen</option>
										<option>Meine Beiträge sind zu hoch</option>
										<option>Ich bin unsicher, ob wichtige Risiken abgedeckt sind</option>
										<option>Mein Betrieb hat sich verändert</option>
										<option>Ich benötige eine neue Absicherung</option>
										<option>Ich wünsche eine unabhängige Zweitmeinung</option>
									</select>
								</div>
								<div class="gvs-field gvs-col-100">
									<label for="besonderheiten">Gibt es Besonderheiten oder aktuelle Herausforderungen?</label>
									<textarea id="besonderheiten" name="besonderheiten" placeholder="z. B. neue Maschinen, größere Baustellen, Betriebserweiterung oder unklare Altverträge"></textarea>
								</div>
								<div class="gvs-field gvs-col-100">
									<label for="entscheidungszeitraum">Wann planen Sie eine Entscheidung?</label>
									<select id="entscheidungszeitraum" name="entscheidungszeitraum">
										<option value="">Bitte auswählen</option>
										<option>So bald wie möglich</option>
										<option>Innerhalb der nächsten 4 Wochen</option>
										<option>In den nächsten 2–3 Monaten</option>
										<option>Ich möchte mich zunächst informieren</option>
									</select>
								</div>
							</div>
							<div class="gvs-nav">
								<button type="button" class="gvs-btn gvs-btn-prev">Zurück</button>
								<button type="button" class="gvs-btn gvs-btn-next">Weiter zu Ihren Kontaktdaten</button>
							</div>
						</div>
						<div class="gvs-step" data-step="5">
							<h3 class="gvs-step-title">Wohin dürfen wir Ihre Einschätzung senden?</h3>
							<p class="gvs-step-desc">Wir melden uns persönlich und unverbindlich bei Ihnen.</p>
							<div class="gvs-grid">
								<div class="gvs-field">
									<label for="ansprechpartner">Ansprechpartner *</label>
									<input type="text" id="ansprechpartner" name="ansprechpartner" placeholder="Vor- und Nachname" required>
								</div>
								<div class="gvs-field">
									<label for="email">E-Mail-Adresse *</label>
									<input type="email" id="email" name="email" placeholder="z. B. name@firma.de" required>
								</div>
								<div class="gvs-field">
									<label for="telefon">Telefonnummer *</label>
									<input type="tel" id="telefon" name="telefon" placeholder="z. B. 0171 1234567" required>
								</div>
								<div class="gvs-field">
									<label for="kontaktart">Bevorzugte Kontaktart</label>
									<select id="kontaktart" name="kontaktart">
										<option value="">Bitte auswählen</option>
										<option>Rückruf</option>
										<option>E-Mail</option>
										<option>Telefontermin</option>
										<option>Videotermin</option>
									</select>
								</div>
								<div class="gvs-field gvs-col-100">
									<label for="erreichbarkeit">Beste Erreichbarkeit</label>
									<select id="erreichbarkeit" name="erreichbarkeit">
										<option value="">Bitte auswählen</option>
										<option>Vormittags</option>
										<option>Mittags</option>
										<option>Nachmittags</option>
										<option>Ganztägig</option>
										<option>Per E-Mail jederzeit</option>
									</select>
								</div>
								<div class="gvs-field gvs-col-100">
									<label class="gvs-checkbox-item">
										<input type="checkbox" name="einwilligung_analyse" value="1" required>
										<span>Ich wünsche eine kostenlose und unverbindliche Risikoanalyse für meinen Gewerbebetrieb. *</span>
									</label>
								</div>
								<div class="gvs-field gvs-col-100">
									<label class="gvs-checkbox-item">
										<input type="checkbox" name="datenschutz" value="1" required>
										<span>Ich habe die Datenschutzerklärung gelesen und stimme der Verarbeitung meiner Angaben zur Bearbeitung meiner Anfrage zu. *</span>
									</label>
									<div class="gvs-note">Hier kannst du deine Datenschutzerklärung verlinken.</div>
								</div>
							</div>
							<div class="gvs-nav">
								<button type="button" class="gvs-btn gvs-btn-prev">Zurück</button>
								<button type="submit" class="gvs-btn gvs-btn-submit">Kostenlose Risikoanalyse anfordern</button>
							</div>
						</div>
					</form>
				<?php endif; ?>
			</div>
		</div>
		<?php
		return ob_get_clean();
	}
}
/**
 * Admin-Menü
 */
if (!function_exists('gvs_ra_admin_menu')) {
	add_action('admin_menu', 'gvs_ra_admin_menu');
	function gvs_ra_admin_menu() {
		add_menu_page(
			'Risikoanalyse Anfragen',
			'Risikoanalyse',
			'manage_options',
			'gvs-risikoanalyse',
			'gvs_ra_admin_page',
			'dashicons-portfolio',
			26
		);
	}
}
/**
 * CSV Export
 */
if (!function_exists('gvs_ra_handle_csv_export')) {
	add_action('admin_init', 'gvs_ra_handle_csv_export');
	function gvs_ra_handle_csv_export() {
		if (!is_admin()) return;
		if (!current_user_can('manage_options')) return;
		if (!isset($_GET['page']) || $_GET['page'] !== 'gvs-risikoanalyse') return;
		if (!isset($_GET['gvs_export']) || $_GET['gvs_export'] !== 'csv') return;
		global $wpdb;
		$table_name = $wpdb->prefix . GVS_RA_TABLE;
		$rows = $wpdb->get_results("SELECT * FROM {$table_name} ORDER BY created_at DESC", ARRAY_A);
		nocache_headers();
		header('Content-Type: text/csv; charset=utf-8');
		header('Content-Disposition: attachment; filename=risikoanalyse-anfragen.csv');
		$output = fopen('php://output', 'w');
		if (!empty($rows)) {
			fputcsv($output, array_keys($rows[0]), ';');
			foreach ($rows as $row) {
				fputcsv($output, $row, ';');
			}
		} else {
			fputcsv($output, array('Keine Daten vorhanden'), ';');
		}
		fclose($output);
		exit;
	}
}
/**
 * Admin-Seite
 */
if (!function_exists('gvs_ra_admin_page')) {
	function gvs_ra_admin_page() {
		if (!current_user_can('manage_options')) {
			return;
		}
		global $wpdb;
		$table_name = $wpdb->prefix . GVS_RA_TABLE;
		$rows = $wpdb->get_results("SELECT * FROM {$table_name} ORDER BY created_at DESC LIMIT 100", ARRAY_A);
		?>
		<div class="wrap">
			<h1>Risikoanalyse Anfragen</h1>
			<p>
				<a href="<?php echo esc_url(admin_url('admin.php?page=gvs-risikoanalyse&gvs_export=csv')); ?>" class="button button-primary">
					CSV exportieren
				</a>
			</p>
			<table class="widefat fixed striped">
				<thead>
					<tr>
						<th>ID</th>
						<th>Datum</th>
						<th>Firma</th>
						<th>Branche</th>
						<th>Ansprechpartner</th>
						<th>E-Mail</th>
						<th>Telefon</th>
						<th>Anfragegrund</th>
					</tr>
				</thead>
				<tbody>
					<?php if (!empty($rows)) : ?>
						<?php foreach ($rows as $row) : ?>
							<tr>
								<td><?php echo esc_html($row['id']); ?></td>
								<td><?php echo esc_html($row['created_at']); ?></td>
								<td><?php echo esc_html($row['firmenname']); ?></td>
								<td><?php echo esc_html($row['branche']); ?></td>
								<td><?php echo esc_html($row['ansprechpartner']); ?></td>
								<td><?php echo esc_html($row['email']); ?></td>
								<td><?php echo esc_html($row['telefon']); ?></td>
								<td><?php echo esc_html($row['anfragegrund']); ?></td>
							</tr>
						<?php endforeach; ?>
					<?php else : ?>
						<tr>
							<td colspan="8">Noch keine Einträge vorhanden.</td>
						</tr>
					<?php endif; ?>
				</tbody>
			</table>
		</div>
		<?php
	}
}

Wohin dürfen wir Ihre Einschätzung senden?

Wir melden uns persönlich und unverbindlich bei Ihnen.

Hier kannst du deine Datenschutzerklärung verlinken.
prefix . GVS_RA_TABLE; $rows = $wpdb->get_results("SELECT * FROM {$table_name} ORDER BY created_at DESC", ARRAY_A); nocache_headers(); header('Content-Type: text/csv; charset=utf-8'); header('Content-Disposition: attachment; filename=risikoanalyse-anfragen.csv'); $output = fopen('php://output', 'w'); if (!empty($rows)) { fputcsv($output, array_keys($rows[0]), ';'); foreach ($rows as $row) { fputcsv($output, $row, ';'); } } else { fputcsv($output, array('Keine Daten vorhanden'), ';'); } fclose($output); exit; } } /** * Admin-Seite */ if (!function_exists('gvs_ra_admin_page')) { function gvs_ra_admin_page() { if (!current_user_can('manage_options')) { return; } global $wpdb; $table_name = $wpdb->prefix . GVS_RA_TABLE; $rows = $wpdb->get_results("SELECT * FROM {$table_name} ORDER BY created_at DESC LIMIT 100", ARRAY_A); ?>

Risikoanalyse Anfragen

CSV exportieren

ID Datum Firma Branche Ansprechpartner E-Mail Telefon Anfragegrund
Noch keine Einträge vorhanden.

Comments

Add a Comment