PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.36
OttoKit: All-in-One Automation Platform v1.1.36
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 / ws-form / triggers / user-submits-ws-form.php
suretriggers / src / Integrations / ws-form / triggers Last commit date
user-submits-ws-form.php 1 year ago
user-submits-ws-form.php
150 lines
1 <?php
2 /**
3 * UserSubmitsWSForm.
4 * php version 5.6
5 *
6 * @category UserSubmitsWSForm
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\WSForm\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Traits\SingletonLoader;
18
19 if ( ! class_exists( 'UserSubmitsWSForm' ) ) :
20
21 /**
22 * UserSubmitsWSForm
23 *
24 * @category UserSubmitsWSForm
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 UserSubmitsWSForm {
34
35 /**
36 * Integration type.
37 *
38 * @var string
39 */
40 public $integration = 'WSForm';
41
42 /**
43 * Trigger name.
44 *
45 * @var string
46 */
47 public $trigger = 'user_submits_wsform';
48
49 use SingletonLoader;
50
51 /**
52 * Constructor
53 *
54 * @since 1.0.0
55 */
56 public function __construct() {
57 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
58 }
59
60 /**
61 * Register action.
62 *
63 * @param array $triggers trigger data.
64 * @return array
65 */
66 public function register( $triggers ) {
67 $triggers[ $this->integration ][ $this->trigger ] = [
68 'label' => __( 'Form Submitted', 'suretriggers' ),
69 'action' => 'user_submits_wsform',
70 'common_action' => 'wsf_submit_post_complete',
71 'function' => [ $this, 'trigger_listener' ],
72 'priority' => 10,
73 'accepted_args' => 1,
74 ];
75
76 return $triggers;
77 }
78
79 /**
80 * Trigger listener
81 *
82 * @param object $form_submit submission_data.
83 * @since 1.0.0
84 *
85 * @return void
86 */
87 public function trigger_listener( $form_submit ) {
88 if ( empty( $form_submit ) || ! property_exists( $form_submit, 'form_id' ) ) {
89 return;
90 }
91
92 if ( property_exists( $form_submit, 'form_object' ) ) {
93 if ( function_exists( 'wsf_form_get_fields' ) ) {
94 $fields = wsf_form_get_fields( $form_submit->form_object );
95 foreach ( $fields as $field ) {
96
97 if ( ! isset( $field->type ) ) {
98 continue;
99 }
100 $field_type = $field->type;
101
102 if ( function_exists( 'wsf_config_get_field_types' ) ) {
103 $field_types = wsf_config_get_field_types();
104
105 if ( ! isset( $field_types[ $field_type ] ) ) {
106 continue;
107 }
108 $field_type_config = $field_types[ $field_type ];
109 $submit_save = isset( $field_type_config['submit_save'] ) ? $field_type_config['submit_save'] : false;
110
111 if ( ! $submit_save ) {
112 continue;
113 }
114 }
115
116 if ( property_exists( $field, 'id' ) ) {
117 $field_name = $field->id;
118 if ( function_exists( 'wsf_submit_get_value' ) ) {
119 $field_value = wsf_submit_get_value( $form_submit, 'field_' . $field_name );
120
121 if ( property_exists( $field, 'label' ) ) {
122 $context[ $field->label ] = $field_value;
123 }
124 }
125 }
126 }
127 }
128 }
129
130 $form_id = absint( $form_submit->form_id );
131 $context['form_id'] = $form_id;
132
133 AutomationController::sure_trigger_handle_trigger(
134 [
135 'trigger' => $this->trigger,
136 'context' => $context,
137 ]
138 );
139 }
140 }
141
142 /**
143 * Ignore false positive
144 *
145 * @psalm-suppress UndefinedMethod
146 */
147 UserSubmitsWSForm::get_instance();
148
149 endif;
150