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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
<?php
namespace WPForms\Providers\Provider;
/** * Class Process handles entries processing using the provider settings and configuration. * * @since 1.4.7 */ abstract class Process {
/** * Get the Core loader class of a provider. * * @since 1.4.7 * * @var Core */ protected $core;
/** * Array of form fields. * * @since 1.4.7 * * @var array */ protected $fields = array();
/** * Submitted form content. * * @since 1.4.7 * * @var array */ protected $entry = array(); /** * Form data and settings. * * @since 1.4.7 * * @var array */ protected $form_data = array(); /** * ID of a saved entry. * * @since 1.4.7 * * @var int */ protected $entry_id;
/** * Process constructor. * * @since 1.4.7 * * @param Core $core Provider core class. */ public function __construct( Core $core ) { $this->core = $core; }
/** * Receive all wpforms_process_complete params and do the actual processing. * * @since 1.4.7 * * @param array $fields Array of form fields. * @param array $entry Submitted form content. * @param array $form_data Form data and settings. * @param int $entry_id ID of a saved entry. */ abstract public function process( $fields, $entry, $form_data, $entry_id );
/** * Process conditional logic for a connection. * * @since 1.4.7 * * @param array $fields Array of form fields. * @param array $form_data Form data and settings. * @param array $connection All connection data. * * @return bool */ protected function process_conditionals( $fields, $form_data, $connection ) {
if ( empty( $connection['conditional_logic'] ) || empty( $connection['conditionals'] ) ) { return true; }
$process = wpforms_conditional_logic()->process( $fields, $form_data, $connection['conditionals'] );
if ( ! empty( $connection['conditional_type'] ) && 'stop' === $connection['conditional_type'] ) { $process = ! $process; }
return $process; }
/** * Get provider options, saved on Settings > Integrations page. * * @since 1.4.7 * * @return array */ protected function get_options() { return \wpforms_get_providers_options( $this->core->slug ); } }
|