| |
| <?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| if (!defined('ABSPATH')) {
|
| exit;
|
| }
|
|
|
| if (!defined('GVS_RA_TABLE')) {
|
| define('GVS_RA_TABLE', 'gvs_risikoanalyse_anfragen');
|
| }
|
|
|
|
|
|
|
|
|
| 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);
|
| }
|
| }
|
|
|
|
|
|
|
|
|
| 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);
|
| }
|
| }
|
|
|
|
|
|
|
|
|
| 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>
|
| <option>über 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>
|
| <option>über 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>
|
| <option>über 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
|
| );
|
| }
|
| }
|
|
|
|
|
|
|
|
|
| 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;
|
| }
|
| }
|
|
|
|
|
|
|
|
|
| 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
|
| }
|
| }
|
| |
| |
Comments