Testseite

/** * TSG Schönberg Vereinsformular * Mitgliedschaftsantrag mit PDF-Generierung und E-Mail-Versand */ add_shortcode(‚vereinsformular‘, ‚render_vereinsformular‘); function render_vereinsformular() { ob_start(); if ($_SERVER[‚REQUEST_METHOD‘] === ‚POST‘ && isset($_POST[‚vereins_anmeldung_submit‘])) { process_vereinsformular(); } // Sportarten für Antragsteller (Erwachsene) $sportarten_erwachsene = array( ‚Fitnessgymnastik‘ => 5, ‚Rhythmische Gymnastik‘ => 5, ‚Rhythmische Gymnastik Wettkampfgruppe‘ => 5, ‚Freizeit-Fußball‘ => 0, ‚Rückengymnastik‘ => 5, ‚Tischtennis‘ => 0, ‚Selbstverteidigung‘ => 5, ‚Fit im Alter‘ => 5, ‚Zumba‘ => 15, ); // Sportarten für Kinder $sportarten_kinder = array( ‚Ballett‘ => 25, ‚Sport für Jungs‘ => 5, ‚Trampolinturnen‘ => 20, ‚Trampolin Breitensport‘ => 5, ‚Hip Hop‘ => 25, ‚Geräteturnen Mädchen‘ => 5, ‚Sportkindergarten‘ => 5, ‚Sport für Mädchen‘ => 5, ‚Zumba‘ => 15, ); // Kombinierte Liste für die Preisberechnung $sportarten_liste = array_merge($sportarten_erwachsene, $sportarten_kinder); ?>

Aufnahmeantrag

Persönliche Daten

Sportarten für Antragsteller (optional)

$preis): ?>

Kinder anmelden (optional)

Bankdaten & SEPA-Lastschrift

i Einzugsermächtigung & SEPA-Lastschriftmandat

EINZUGSERMÄCHTIGUNG

Ich ermächtige den Zahlungsempfänger (TSG Schönberg / Taunus e.V.) widerruflich, die von mir zu entrichtenden Zahlungen bei Fälligkeit durch Lastschrift von meinem Konto einzuziehen.

Der Einzug der Beiträge erfolgt quartalsweise, in der Regel in der Mitte des jeweiligen Quartals.

SEPA-LASTSCHRIFTMANDAT

Ich ermächtige die TSG Schönberg / Taunus e.V., Zahlungen von meinem Konto mittels Lastschrift einzuziehen. Zugleich weise ich mein Kreditinstitut an, die von der TSG Schönberg / Taunus e.V. auf mein Konto gezogenen Lastschriften einzulösen.

Ich kann innerhalb von acht Wochen, beginnend mit dem Belastungsdatum, die Erstattung des belasteten Betrages verlangen. Es gelten dabei die mit meinem Kreditinstitut vereinbarten Bedingungen.

Ich erkenne an, dass für den Fall einer fehlenden Deckung meines Kontos entstehende Bankgebühren von mir getragen werden. In diesem Fall verpflichte ich mich, diese nachgewiesenen Gebühren, die fälligen Beiträge und Gebühren auf Anforderung der TSG Schönberg / Taunus e. V. sofort zu überweisen.

Ich erkläre hiermit meinen Eintritt in die Turn- und Sportgemeinde Schönberg/ Taunus e.V. gemäß der gültigen Satzung einschließlich der dortigen Datenschutzbestimmungen (§4).

Zustimmungen

Sicherheitsüberprüfung fehlgeschlagen.
‚; return; } // Kombinierte Preisliste für die Verarbeitung $sportarten_preise = array( // Sportarten für Antragsteller ‚Fitnessgymnastik‘ => 5, ‚Rhythmische Gymnastik‘ => 5, ‚Rhythmische Gymnastik Wettkampfgruppe‘ => 5, ‚Freizeit-Fußball‘ => 0, ‚Rückengymnastik‘ => 5, ‚Tischtennis‘ => 0, ‚Selbstverteidigung‘ => 5, ‚Fit im Alter‘ => 5, ‚Zumba‘ => 15, // Kinder-Sportarten ‚Ballett‘ => 25, ‚Sport für Jungs‘ => 5, ‚Trampolinturnen‘ => 20, ‚Trampolin Breitensport‘ => 5, ‚Hip Hop‘ => 25, ‚Geräteturnen Mädchen‘ => 5, ‚Sportkindergarten‘ => 5, ‚Sport für Mädchen‘ => 5, ‚Zumba‘ => 15, ); $vorname = sanitize_text_field($_POST[‚vorname‘] ?? “); $nachname = sanitize_text_field($_POST[’nachname‘] ?? “); $geschlecht = sanitize_text_field($_POST[‚geschlecht‘] ?? “); $geburtsdatum_tag = sanitize_text_field($_POST[‚geburtsdatum_tag‘] ?? “); $geburtsdatum_monat = sanitize_text_field($_POST[‚geburtsdatum_monat‘] ?? “); $geburtsdatum_jahr = sanitize_text_field($_POST[‚geburtsdatum_jahr‘] ?? “); $adresse = sanitize_text_field($_POST[‚adresse‘] ?? “); $plz = sanitize_text_field($_POST[‚plz‘] ?? “); $ort = sanitize_text_field($_POST[‚ort‘] ?? “); $telefon = sanitize_text_field($_POST[‚telefon‘] ?? “); $email = sanitize_email($_POST[‚email‘] ?? “); $grundbeitrag = sanitize_text_field($_POST[‚grundbeitrag‘] ?? “); $sportarten = isset($_POST[’sportarten‘]) && is_array($_POST[’sportarten‘]) ? array_map(’sanitize_text_field‘, $_POST[’sportarten‘]) : []; $kontoinhaber = sanitize_text_field($_POST[‚kontoinhaber‘] ?? “); $iban = sanitize_text_field($_POST[‚iban‘] ?? “); $newsletter = isset($_POST[’newsletter‘]) ? ‚Ja‘ : ‚Nein‘; $kinder = []; $kinder_vornamen = $_POST[‚child_vorname‘] ?? []; $kinder_nachnamen = $_POST[‚child_nachname‘] ?? []; $kinder_geburtstage = $_POST[‚child_geburtsdatum_tag‘] ?? []; $kinder_geburtsmonate = $_POST[‚child_geburtsdatum_monat‘] ?? []; $kinder_geburtsjahre = $_POST[‚child_geburtsdatum_jahr‘] ?? []; $kinder_geschlechter = $_POST[‚child_geschlecht‘] ?? []; $kinder_sportarten = []; foreach ($_POST as $key => $value) { if (preg_match(‚/^child_sportarten_(\d+)$/‘, $key, $matches)) { $kinder_sportarten[$matches[1]] = is_array($value) ? array_map(’sanitize_text_field‘, $value) : []; } } for ($i = 0; $i < count($kinder_vornamen); $i++) { $kinder[] = [ 'vorname' => sanitize_text_field($kinder_vornamen[$i] ?? “), ’nachname‘ => sanitize_text_field($kinder_nachnamen[$i] ?? “), ‚geburtsdatum‘ => sprintf(‚%02d.%02d.%04d‘, $kinder_geburtstage[$i] ?? 0, $kinder_geburtsmonate[$i] ?? 0, $kinder_geburtsjahre[$i] ?? 0), ‚geschlecht‘ => sanitize_text_field($kinder_geschlechter[$i] ?? “), ’sportarten‘ => $kinder_sportarten[$i + 1] ?? [] ]; } $pdf_path = generate_vereins_pdf($vorname, $nachname, $geschlecht, $geburtsdatum_tag, $geburtsdatum_monat, $geburtsdatum_jahr, $adresse, $plz, $ort, $telefon, $email, $grundbeitrag, $sportarten, $sportarten_preise, $kinder, $kontoinhaber, $iban, $newsletter); if (!$pdf_path) { echo ‚
Fehler bei der PDF-Erstellung.
‚; return; } $headers = array( ‚Content-Type: text/html; charset=UTF-8‘, ‚From: TSG Schönberg ‚ ); // E-Mail an den Verein senden $to_verein = ‚mitglieder@tsg-schoenberg.de‘; $subject_verein = ‚Neuer Aufnahmeantrag – ‚ . $vorname . ‚ ‚ . $nachname; $message_verein = get_email_template_verein($vorname, $nachname, $email, $telefon); $mail_verein_sent = wp_mail($to_verein, $subject_verein, $message_verein, $headers, array($pdf_path)); // E-Mail an den Antragsteller senden $subject_antragsteller = ‚Willkommen bei der TSG Schönberg / Taunus e.V.!‘; $message_antragsteller = get_email_template_antragsteller($vorname, $nachname); $mail_antragsteller_sent = wp_mail($email, $subject_antragsteller, $message_antragsteller, $headers, array($pdf_path)); // PDF-Datei löschen if (file_exists($pdf_path)) { unlink($pdf_path); } // Verbesserte Fehlerbehandlung if ($mail_verein_sent && $mail_antragsteller_sent) { echo ‚
Vielen Dank für Ihre Anmeldung! Sie erhalten in Kürze eine Bestätigungs-E-Mail mit Ihren Anmeldedaten.
‚; } elseif ($mail_verein_sent && !$mail_antragsteller_sent) { echo ‚
Ihre Anmeldung wurde erfolgreich übermittelt. Die Bestätigungs-E-Mail an Ihre Adresse konnte jedoch nicht zugestellt werden. Bitte überprüfen Sie Ihre E-Mail-Adresse oder kontaktieren Sie uns direkt.
‚; } elseif (!$mail_verein_sent && $mail_antragsteller_sent) { echo ‚
Ihre Bestätigungs-E-Mail wurde versendet, aber es gab ein Problem bei der internen Weiterleitung. Wir werden uns so schnell wie möglich bei Ihnen melden.
‚; } else { echo ‚
Beim Senden ist ein Fehler aufgetreten. Bitte versuchen Sie es später noch einmal oder kontaktieren Sie uns direkt.
‚; } } function get_email_template_verein($vorname, $nachname, $email, $telefon) { return “

Neuer Aufnahmeantrag

Von: “ . htmlspecialchars($vorname . ‚ ‚ . $nachname) . „
E-Mail: “ . htmlspecialchars($email) . „
Telefon: “ . htmlspecialchars($telefon) . „

Die vollständigen Daten sind im PDF-Anhang enthalten.

Diese E-Mail wurde automatisch generiert.

„; } function get_email_template_antragsteller($vorname, $nachname) { return “

Willkommen!

Hallo “ . htmlspecialchars($vorname . ‚ ‚ . $nachname) . „,

vielen Dank für Ihre Anmeldung bei der TSG Schönberg / Taunus e.V.!

Wir haben Ihren Aufnahmeantrag erhalten und werden diesen zeitnah bearbeiten. Im Anhang finden Sie eine Kopie Ihrer Anmeldung zur Aufbewahrung.

Ihre nächsten Schritte:

  • Sie erhalten in den nächsten Tagen eine Bestätigung Ihrer Mitgliedschaft
  • Der Beitragseinzug erfolgt quartalsweise via SEPA-Lastschrift
  • Bei Fragen stehen wir Ihnen gerne zur Verfügung

Wir freuen uns, Sie als neues Mitglied in unserem Verein begrüßen zu dürfen!

Sportliche Grüße
Ihr Team der TSG Schönberg / Taunus e.V.

TSG Schönberg / Taunus e.V. | Turn- und Sportgemeinde

Diese E-Mail wurde automatisch generiert.

„; } function generate_vereins_pdf($vorname, $nachname, $geschlecht, $geburtsdatum_tag, $geburtsdatum_monat, $geburtsdatum_jahr, $adresse, $plz, $ort, $telefon, $email, $grundbeitrag, $sportarten, $sportarten_preise, $kinder, $kontoinhaber, $iban, $newsletter) { $tcpdf_path = get_stylesheet_directory() . ‚/tcpdf/tcpdf.php‘; if (!file_exists($tcpdf_path)) { error_log(‚TCPDF nicht gefunden unter: ‚ . $tcpdf_path); return false; } require_once($tcpdf_path); // Logo URL holen (WordPress Site Logo oder Custom Logo) $logo_url = “; $custom_logo_id = get_theme_mod(‚custom_logo‘); if ($custom_logo_id) { $logo_url = wp_get_attachment_image_src($custom_logo_id, ‚full‘)[0]; } // Eigene Header/Footer-Klasse für TCPDF erstellen class PDF_HeaderFooter extends TCPDF { public $logo_url = “; public function Header() { // Logo links mit optimiertem Abstand if ($this->logo_url) { $this->Image($this->logo_url, 15, 16, 25, “, “, “, ‚T‘, false, 300, “, false, false, 0, false, false, false); } // Titel mittig mit optimalen Abständen $this->SetY(19); $this->SetFont(‚helvetica‘, ‚B‘, 18); $this->Cell(0, 8, ‚AUFNAHMEANTRAG‘, 0, 1, ‚C‘); $this->SetFont(‚helvetica‘, ‚B‘, 11); $this->Cell(0, 5, ‚TSG Schönberg / Taunus e.V.‘, 0, 1, ‚C‘); $this->Ln(10); } public function Footer() { $this->SetY(-30); $this->SetFont(‚helvetica‘, “, 7); // Fußzeile mit optimiertem Format und Abständen $footer_html = ‚
TSG Schönberg / Taunus 1920 e. V.
E-Mail: info@tsg-schoenberg.de • Adresse: Tulpenweg 5, 61476 Kronberg im Taunus • Telefon: (+49) 6173 32 34 12
www.tsg-schoenberg.de
‚; $this->writeHTML($footer_html, true, false, true, false, “); } } // PDF mit Header/Footer-Klasse erstellen $pdf = new PDF_HeaderFooter(‚P‘, ‚mm‘, ‚A4‘, true, ‚UTF-8‘, false); $pdf->logo_url = $logo_url; $pdf->SetCreator(‚TSG Schönberg / Taunus e.V.‘); $pdf->SetAuthor(‚TSG Schönberg / Taunus e.V.‘); $pdf->SetTitle(‚Aufnahmeantrag‘); $pdf->setPrintHeader(true); $pdf->setPrintFooter(true); $pdf->SetHeaderMargin(5); $pdf->SetFooterMargin(14); $pdf->SetMargins(15, 50, 15); $pdf->SetAutoPageBreak(true, 35); $pdf->AddPage(); $pdf->SetFont(‚helvetica‘, “, 10); // Kosten berechnen $grundbeitrag_preis = strpos($grundbeitrag, ‚Aktiv‘) !== false ? 7 : (strpos($grundbeitrag, ‚Familie‘) !== false ? 15 : 3); $sportarten_summe = 0; foreach ($sportarten as $sport) { $sportarten_summe += $sportarten_preise[$sport] ?? 0; } $hauptmitglied_gesamt = $grundbeitrag_preis + $sportarten_summe; // Grundbeitrag mit Preis in Klammern $grundbeitrag_mit_preis = $grundbeitrag . ‚ (‚ . number_format($grundbeitrag_preis, 2, ‚,‘, ‚.‘) . ‚ €)‘; // Sportarten untereinander auflisten $sportarten_html = “; if (!empty($sportarten)) { foreach ($sportarten as $sport) { $preis = $sportarten_preise[$sport] ?? 0; $sportarten_html .= ‚
• ‚ . htmlspecialchars($sport) . ‚ (‚ . number_format($preis, 2, ‚,‘, ‚.‘) . ‚ €)
‚; } } else { $sportarten_html = ‚
Keine
‚; } // Zustimmungen prüfen $anmeldung_bindend = isset($_POST[‚anmeldung_bindend‘]) ? ‚[X]‘ : ‚[ ]‘; $sepa_mandat = isset($_POST[’sepa_mandat‘]) ? ‚[X]‘ : ‚[ ]‘; $datenschutz = isset($_POST[‚datenschutz‘]) ? ‚[X]‘ : ‚[ ]‘; $newsletter_check = isset($_POST[’newsletter‘]) ? ‚[X]‘ : ‚[ ]‘; // HTML generieren mit optimiertem Design $html = ‚

PERSÖNLICHE DATEN

Name: ‚ . htmlspecialchars($vorname . ‚ ‚ . $nachname) . ‚
Geschlecht: ‚ . htmlspecialchars($geschlecht ?: ‚-‚) . ‚
Geburtsdatum: ‚ . sprintf(‚%02d.%02d.%04d‘, $geburtsdatum_tag, $geburtsdatum_monat, $geburtsdatum_jahr) . ‚
Adresse: ‚ . htmlspecialchars($adresse) . ‚
PLZ / Ort: ‚ . htmlspecialchars($plz . ‚ ‚ . $ort) . ‚
Telefon: ‚ . htmlspecialchars($telefon ?: ‚-‚) . ‚
E-Mail: ‚ . htmlspecialchars($email) . ‚

MITGLIEDSCHAFT

Grundbeitrag: ‚ . htmlspecialchars($grundbeitrag_mit_preis) . ‚
Sportarten:
‚ . $sportarten_html . ‚
‚; // Kinder mit optimierten Abständen if (!empty($kinder)) { $html .= ‚
‚; $html .= ‚

ANGEMELDETE KINDER

‚; foreach ($kinder as $index => $kind) { $kind_sportarten_html = “; if (!empty($kind[’sportarten‘])) { foreach ($kind[’sportarten‘] as $sport) { $preis = $sportarten_preise[$sport] ?? 0; $kind_sportarten_html .= ‚
• ‚ . htmlspecialchars($sport) . ‚ (‚ . number_format($preis, 2, ‚,‘, ‚.‘) . ‚ €)
‚; } } else { $kind_sportarten_html = ‚
Keine
‚; } $html .= ‚

Kind ‚ . ($index + 1) . ‚

Name: ‚ . htmlspecialchars($kind[‚vorname‘] . ‚ ‚ . $kind[’nachname‘]) . ‚
Geburtsdatum: ‚ . htmlspecialchars($kind[‚geburtsdatum‘]) . ‚
Geschlecht: ‚ . htmlspecialchars($kind[‚geschlecht‘] ?: ‚-‚) . ‚
Sportarten:
‚ . $kind_sportarten_html . ‚
‚; } $html .= ‚
‚; } // Kostenübersicht mit optimierten Abständen $html .= ‚
‚; $html .= ‚
‚; $html .= ‚

KOSTENÜBERSICHT (MONATLICH)

‚; $html .= ‚‚; $html .= ‚‚; $gesamtkosten = $hauptmitglied_gesamt; foreach ($kinder as $index => $kind) { $kind_summe = 0; foreach ($kind[’sportarten‘] ?? [] as $sport) { $kind_summe += $sportarten_preise[$sport] ?? 0; } if ($kind_summe > 0) { $gesamtkosten += $kind_summe; $html .= ‚‚; } } // Spacer mit mehr Abstand vor Gesamtsumme $html .= ‚‚; $html .= ‚‚; $html .= ‚
Antragsteller‚ . number_format($hauptmitglied_gesamt, 2, ‚,‘, ‚.‘) . ‚ €
Kind ‚ . ($index + 1) . ‚‚ . number_format($kind_summe, 2, ‚,‘, ‚.‘) . ‚ €
Gesamtbetrag pro Monat‚ . number_format($gesamtkosten, 2, ‚,‘, ‚.‘) . ‚ €
‚; $html .= ‚
‚; // Bankdaten mit optimiertem SEPA-Abstand $html .= ‚

BANKDATEN & SEPA-LASTSCHRIFT

Kontoinhaber: ‚ . htmlspecialchars($kontoinhaber) . ‚
IBAN: ‚ . htmlspecialchars($iban) . ‚
SEPA-LASTSCHRIFTMANDAT: Der Antragsteller ermächtigt die TSG Schönberg / Taunus e.V., Zahlungen von seinem Konto mittels Lastschrift einzuziehen. Der Einzug erfolgt quartalsweise. Erstattung innerhalb von 8 Wochen möglich gemäß den Bedingungen des Kreditinstituts.
‚; // Zustimmungen $html .= ‚

ZUSTIMMUNGEN

‚ . $anmeldung_bindend . ‚ Hiermit melde ich mich verbindlich an.
‚ . $sepa_mandat . ‚ Ich erteile das SEPA-Lastschriftmandat.
‚ . $datenschutz . ‚ Ich akzeptiere die Datenschutzerklärung.
‚ . $newsletter_check . ‚ Ich möchte den Vereinsnewsletter erhalten (optional)
‚; // HTML ins PDF schreiben $pdf->writeHTML($html, true, false, true, false, “); $upload_dir = wp_upload_dir(); $filename = ‚aufnahmeantrag_‘ . sanitize_file_name($vorname . ‚_‘ . $nachname) . ‚_‘ . date(‚Y-m-d_H-i-s‘) . ‚.pdf‘; $filepath = $upload_dir[‚path‘] . ‚/‘ . $filename; file_put_contents($filepath, $pdf->Output(“, ‚S‘)); return $filepath; }