diff options
Diffstat (limited to 'cf7-to-webling.php')
-rw-r--r-- | cf7-to-webling.php | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/cf7-to-webling.php b/cf7-to-webling.php new file mode 100644 index 0000000..3b72467 --- /dev/null +++ b/cf7-to-webling.php @@ -0,0 +1,67 @@ +<?php +/* + * Plugin Name: CF7 to Webling + */ + +// @see https://plugins.trac.wordpress.org/browser/contact-form-7/trunk/includes/submission.php#L119 +// @see https://plugins.trac.wordpress.org/browser/contact-form-7/trunk/includes/contact-form.php +add_action('wpcf7_mail_sent', function ($contactForm) { + $formId = 1234; + $apiUrl = 'https://demo.webling.ch/api/1'; + $apiKey = '987654321'; + $memberGroupId = 123; + + if ($contactForm->id() !== $formId) { + return; + } + + // @see https://stackoverflow.com/questions/42807833/how-to-capture-post-data-with-contact-form7/56655271#56655271 + $submission = WPCF7_Submission::get_instance(); + $data = $submission->get_posted_data(); + + #var_dump($data); + $memberData = [ + 'properties' => [ + 'Anrede' => $data['Anrede'][0] ?? '', + 'Geschlecht' => $data['Geschlecht'][0] ?? '', + 'Firma' => $data['Firma'], + 'Geburtsdatum' => $data['Geburtsdatum'], + #'Geburtsdatum' => date('Y-m-d', strtotime($data['Geburtsdatum'])), + 'Vorname' => $data['Vorname'], + 'Nachname' => $data['Nachname'], + 'Strasse / Hausnummer' => $data['Strasse'], + 'PLZ' => $data['PLZ'], + 'Ort' => $data['Ort'], + 'E-Mail' => $data['email'], + 'Telefon' => $data['Telefonnummer'], + 'Jahresbeitrag' => $data['Jahresbeitrag'], + 'Zahlungsart' => $data['Zahlungsart'][0] ?? '', + 'Abweichender Kontoinhaber' => empty($data['AbweichenderKontoinhaber'][0]) ? false : true, + 'Vorname Kontoinhaber' => $data['name-kontoinhaber'], + 'Nachname Kontoinhaber' => $data['nachname-kontoinhaber'], + 'Straße / Hausnummer Kontoinhaber' => $data['Strasse-kontoinhaber'], + 'PLZ/Ort Kontoinhaber' => $data['Ort-kontoinhaber'], + 'Kreditinstitut' => $data['Kreditinstitut'], + 'IBAN' => $data['IBAN'], + 'BIC' => $data['BIC'], + 'SEPA-Lastschriftmandat' => empty($data['ZustimmungSEPA'][0]) ? false : true, + 'Nachricht' => $data['Nachricht'], + 'Satzung Akzeptiert' => !! $data['Satzung'], + 'Datenschutz Akzeptiert' => !! $data['Datenschutz'], + 'Korrektheit Akzeptiert' => !! $data['Korrektheit'], + 'Kontaktaufnahme Akzeptiert' => !! $data['Kontakt'], + ], + + 'parents' => [$memberGroupId], + ]; + + // @see http://demo.webling.ch/api/1/#header-php + $response = wp_remote_post("$apiUrl/member", [ + 'headers' => [ + 'apikey' => $apiKey, + ], + 'body' => json_encode($memberData), + ]); + + #var_dump($response);exit; +}); |