1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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;
});
|