PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.35
OttoKit: All-in-One Automation Platform v1.1.35
1.1.37 1.1.36 1.1.35 1.1.34 1.1.33 1.1.32 1.1.31 1.1.30 1.1.29 1.1.28 1.1.27 1.1.9 trunk 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 1.0.22 1.0.23 1.0.24 1.0.25 1.0.26 1.0.27 1.0.28 1.0.29 1.0.30 1.0.31 1.0.32 1.0.33 1.0.34 1.0.35 1.0.36 1.0.37 1.0.38 1.0.39 1.0.40 1.0.41 1.0.42 1.0.43 1.0.44 1.0.45 1.0.46 1.0.47 1.0.48 1.0.49 1.0.50 1.0.51 1.0.52 1.0.53 1.0.54 1.0.55 1.0.56 1.0.57 1.0.58 1.0.59 1.0.60 1.0.61 1.0.62 1.0.63 1.0.64 1.0.65 1.0.66 1.0.67 1.0.68 1.0.69 1.0.7 1.0.70 1.0.71 1.0.72 1.0.73 1.0.74 1.0.75 1.0.76 1.0.77 1.0.78 1.0.79 1.0.8 1.0.80 1.0.81 1.0.82 1.0.83 1.0.84 1.0.85 1.0.86 1.0.87 1.0.88 1.0.89 1.0.9 1.0.90 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.20 1.1.21 1.1.22 1.1.23 1.1.24 1.1.25 1.1.26 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8
suretriggers / src / Integrations / gravity-form / triggers / user-submits-form-specific-field.php
suretriggers / src / Integrations / gravity-form / triggers Last commit date
form-entry-updated.php 2 years ago user-register-gravity-form.php 2 years ago user-submits-form-specific-field.php 1 year ago user-submits-form.php 1 year ago user-submits-payment-gravity-form.php 2 years ago
user-submits-form-specific-field.php
192 lines
1 <?php
2 /**
3 * UserSubmitsSpecificFieldGravityForm.
4 * php version 5.6
5 *
6 * @category UserSubmitsSpecificFieldGravityForm
7 * @package SureTriggers
8 * @author BSF <username@example.com>
9 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
10 * @link https://www.brainstormforce.com/
11 * @since 1.0.0
12 */
13
14 namespace SureTriggers\Integrations\GravityForms\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Traits\SingletonLoader;
18
19 if ( ! class_exists( 'UserSubmitsSpecificFieldGravityForm' ) ) :
20
21 /**
22 * UserSubmitsSpecificFieldGravityForm
23 *
24 * @category UserSubmitsSpecificFieldGravityForm
25 * @package SureTriggers
26 * @author BSF <username@example.com>
27 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
28 * @link https://www.brainstormforce.com/
29 * @since 1.0.0
30 *
31 * @psalm-suppress UndefinedTrait
32 */
33 class UserSubmitsSpecificFieldGravityForm {
34
35
36 /**
37 * Integration type.
38 *
39 * @var string
40 */
41 public $integration = 'GravityForms';
42
43
44 /**
45 * Trigger name.
46 *
47 * @var string
48 */
49 public $trigger = 'user_submits_specific_field_gravityform';
50
51 use SingletonLoader;
52
53
54 /**
55 * Constructor
56 *
57 * @since 1.0.0
58 */
59 public function __construct() {
60 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
61 }
62
63 /**
64 * Register action.
65 *
66 * @param array $triggers trigger data.
67 * @return array
68 */
69 public function register( $triggers ) {
70
71 $triggers[ $this->integration ][ $this->trigger ] = [
72 'label' => __( 'Form Submitted with Specific Field', 'suretriggers' ),
73 'action' => 'user_submits_specific_field_gravityform',
74 'common_action' => 'gform_after_submission',
75 'function' => [ $this, 'trigger_listener' ],
76 'priority' => 10,
77 'accepted_args' => 2,
78 ];
79
80 return $triggers;
81
82 }
83
84 /**
85 * Trigger listener
86 *
87 * @param array $entry The entry that was just created.
88 * @param array $form The current form.
89 * @since 1.0.0
90 *
91 * @return void
92 */
93 public function trigger_listener( $entry, $form ) {
94
95 if ( empty( $entry ) || 'spam' === rgar( $entry, 'status' ) ) {
96 return;
97 }
98 $user_id = ap_get_current_user_id();
99
100 $context['gravity_form'] = (int) $form['id'];
101 $context['form_title'] = $form['title'];
102 $context['entry_id'] = $entry['id'];
103 $context['user_ip'] = $entry['ip'];
104 $context['entry_source_url'] = $entry['source_url'];
105 $context['entry_submission_date'] = $entry['date_created'];
106
107 $field_values = [];
108 foreach ( $form['fields'] as $field ) {
109 $inputs = $field->get_entry_inputs();
110 if ( is_array( $inputs ) ) {
111 foreach ( $inputs as $input ) {
112 $label_key = strtolower( str_replace( ' ', '_', $input['label'] ) );
113 if ( ! isset( $input['isHidden'] ) || ( isset( $input['isHidden'] ) && ! $input['isHidden'] ) ) {
114 if ( ( 'fileupload' == $field['type'] && 1 == $field['multipleFiles'] ) || 'multiselect' == $field['type'] ) {
115 $json_string = rgar( $entry, (string) $input['id'] );
116 $array = json_decode( $json_string );
117 if ( is_array( $array ) ) {
118 $comma_separated = implode( ',', $array );
119 $context[ 'form_field_' . $label_key ] = $comma_separated;
120 }
121 }
122 if ( isset( $field_values[ $label_key ] ) ) {
123 if ( ! is_array( $field_values[ $label_key ] ) ) {
124 $field_values[ $label_key ] = [ $field_values[ $label_key ] ];
125 }
126 $field_values[ $label_key ][] = rgar( $entry, (string) $input['id'] );
127 } else {
128 $field_values[ $label_key ] = rgar( $entry, (string) $input['id'] );
129 }
130 }
131 }
132 } else {
133 $label_key = strtolower( str_replace( ' ', '_', $field['label'] ) );
134 if ( ( 'fileupload' == $field['type'] && 1 == $field['multipleFiles'] ) || 'multiselect' == $field['type'] ) {
135 $json_string = rgar( $entry, (string) $field->id );
136 $array = json_decode( $json_string );
137 if ( is_array( $array ) ) {
138 $comma_separated = implode( ',', $array );
139 $context[ 'form_field_' . $label_key ] = $comma_separated;
140 }
141 }
142 if ( isset( $field_values[ $label_key ] ) ) {
143 if ( ! is_array( $field_values[ $label_key ] ) ) {
144 $field_values[ $label_key ] = [ $field_values[ $label_key ] ];
145 }
146 $field_values[ $label_key ][] = rgar( $entry, (string) $field->id );
147 } else {
148 $field_values[ $label_key ] = rgar( $entry, (string) $field->id );
149 }
150 }
151 }
152 $context = array_merge( $context, $field_values );
153
154 foreach ( $form['fields'] as $field ) {
155 $inputs = $field->get_entry_inputs();
156 if ( is_array( $inputs ) ) {
157 foreach ( $inputs as $input ) {
158 if ( ! isset( $input['isHidden'] ) || ( isset( $input['isHidden'] ) && ! $input['isHidden'] ) ) {
159 $context['field_id'] = $input['id'];
160 $context['field_value'] = rgar( $entry, (string) $input['id'] );
161 AutomationController::sure_trigger_handle_trigger(
162 [
163 'trigger' => $this->trigger,
164 'context' => $context,
165 ]
166 );
167 }
168 }
169 } else {
170 $context['field_id'] = $field->id;
171 $context['field_value'] = rgar( $entry, (string) $field->id );
172 AutomationController::sure_trigger_handle_trigger(
173 [
174 'trigger' => $this->trigger,
175 'context' => $context,
176 ]
177 );
178 }
179 }
180 }
181
182 }
183
184 /**
185 * Ignore false positive
186 *
187 * @psalm-suppress UndefinedMethod
188 */
189 UserSubmitsSpecificFieldGravityForm::get_instance();
190
191 endif;
192