PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.33
OttoKit: All-in-One Automation Platform v1.1.33
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.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.php
174 lines
1 <?php
2 /**
3 * UserSubmitsGravityForm.
4 * php version 5.6
5 *
6 * @category UserSubmitsGravityForm
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( 'UserSubmitsGravityForm' ) ) :
20
21 /**
22 * UserSubmitsGravityForm
23 *
24 * @category UserSubmitsGravityForm
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 UserSubmitsGravityForm {
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_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', 'suretriggers' ),
73 'action' => 'user_submits_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 foreach ( $form['fields'] as $field ) {
101
102 $inputs = $field->get_entry_inputs();
103 if ( is_array( $inputs ) ) {
104 foreach ( $inputs as $input ) {
105 $label_key = strtolower( str_replace( ' ', '_', $input['label'] ) );
106 if ( ! isset( $input['isHidden'] ) || ( isset( $input['isHidden'] ) && ! $input['isHidden'] ) ) {
107 if ( ( 'fileupload' == $field['type'] && 1 == $field['multipleFiles'] ) || 'multiselect' == $field['type'] ) {
108 $json_string = rgar( $entry, (string) $input['id'] );
109 $array = json_decode( $json_string );
110 if ( is_array( $array ) ) {
111 $comma_separated = implode( ',', $array );
112 $context[ 'form_field_' . $label_key ] = $comma_separated;
113 }
114 }
115 $value = rgar( $entry, (string) $input['id'] );
116 if ( isset( $context[ $label_key ] ) ) {
117 if ( ! is_array( $context[ $label_key ] ) ) {
118 $context[ $label_key ] = [ $context[ $label_key ] ];
119 }
120 $context[ $label_key ][] = $value;
121 } else {
122 $context[ $label_key ] = $value;
123 }
124 }
125 }
126 } else {
127 $label_key = strtolower( str_replace( ' ', '_', $field['label'] ) );
128 if ( ( 'fileupload' == $field['type'] && 1 == $field['multipleFiles'] ) || 'multiselect' == $field['type'] ) {
129 $json_string = rgar( $entry, (string) $field->id );
130 $array = json_decode( $json_string );
131 if ( is_array( $array ) ) {
132 $comma_separated = implode( ',', $array );
133 $context[ 'form_field_' . $label_key ] = $comma_separated;
134 }
135 }
136 $value = rgar( $entry, (string) $field->id );
137 if ( isset( $context[ $label_key ] ) ) {
138 if ( ! is_array( $context[ $label_key ] ) ) {
139 $context[ $label_key ] = [ $context[ $label_key ] ];
140 }
141 $context[ $label_key ][] = $value;
142 } else {
143 $context[ $label_key ] = $value;
144 }
145 }
146 }
147
148 $context['gravity_form'] = (int) $form['id'];
149 $context['form_title'] = $form['title'];
150 $context['entry_id'] = $entry['id'];
151 $context['user_ip'] = $entry['ip'];
152 $context['entry_source_url'] = $entry['source_url'];
153 $context['entry_submission_date'] = $entry['date_created'];
154
155 AutomationController::sure_trigger_handle_trigger(
156 [
157 'trigger' => $this->trigger,
158 'user_id' => $user_id,
159 'context' => $context,
160 ]
161 );
162 }
163
164 }
165
166 /**
167 * Ignore false positive
168 *
169 * @psalm-suppress UndefinedMethod
170 */
171 UserSubmitsGravityForm::get_instance();
172
173 endif;
174