summaryrefslogtreecommitdiff
path: root/cf7-to-webling.php
blob: 3b724672786314c4d69a613e4a917562cf83a997 (plain)
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;
});