PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.0.87
OttoKit: All-in-One Automation Platform v1.0.87
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 / functions.php
suretriggers Last commit date
app 1 year ago assets 1 year ago inc 1 year ago src 1 year ago autoloader.php 3 years ago changelog.txt 1 year ago functions.php 1 year ago readme.txt 1 year ago suretriggers.php 1 year ago
functions.php
243 lines
1 <?php
2 /**
3 * Global AutomatePlug Functions.
4 *
5 * @package Automateplug
6 */
7
8 /**
9 * Get or prepare user id.
10 *
11 * @return int|mixed|string|void
12 */
13 function ap_get_current_user_id() {
14
15 $user_id = get_current_user_id();
16
17 if ( $user_id ) {
18 return $user_id;
19 }
20
21 if ( ! session_id() ) { //phpcs:ignore
22 session_start(); //phpcs:ignore
23 }
24
25 if ( isset( $_SESSION['ap_user_identifier'] ) ) {
26 return $_SESSION['ap_user_identifier']; //phpcs:ignore
27 }
28
29 $ap_user_id = wp_generate_password( 16, false );
30 $_SESSION['ap_user_identifier'] = $ap_user_id; //phpcs:ignore
31
32 return $_SESSION['ap_user_identifier']; //phpcs:ignore
33
34 }
35
36 /**
37 * Get or prepare user id.
38 *
39 * @param string $email user email.
40 *
41 * @return int|mixed|string|void
42 */
43 function ap_get_user_id_from_email( $email ) {
44
45 if ( empty( $email ) || ! email_exists( $email ) ) {
46 return false;
47 }
48
49 $get_user = get_user_by( 'email', $email );
50 return $get_user->ID;
51
52 }
53
54 add_action(
55 'in_admin_header',
56 function () {
57 if ( isset( $_GET['page'] ) && 'suretriggers' === sanitize_text_field( $_GET['page'] ) ) { // phpcs:ignore
58 remove_all_actions( 'admin_notices' );
59 remove_all_actions( 'all_admin_notices' );
60 }
61 },
62 999
63 );
64
65 add_action( 'wp_login', 'suretrigger_capture_login_time', 10, 2 );
66
67 /**
68 * Login time.
69 *
70 * @param string $user_login user login.
71 * @param object $user user.
72 * @return void
73 */
74 function suretrigger_capture_login_time( $user_login, $user ) {
75 update_user_meta( $user->ID, 'st_last_login', time() );
76 }
77
78 /**
79 * SureTrigger Trigger Button shortcode.
80 *
81 * @param array $atts Attributes.
82 * @param null $content Content.
83 * @return string|bool
84 */
85 function suretrigger_button( $atts, $content = null ) {
86 $atts = shortcode_atts(
87 [
88 'id' => 0,
89 'button_label' => __( 'Click here', 'suretriggers' ),
90 'user_redirect_url' => '',
91 'visitor_redirect_url' => '',
92 'button_class' => 'suretrigger_button',
93 'button_id' => 'suretrigger_button',
94 'click_loading_label' => __( 'Clicking...', 'suretriggers' ),
95 'after_clicked_label' => __( 'Clicked!!', 'suretriggers' ),
96 'click_once' => 'true',
97 'cookie_duration' => '15',
98 ],
99 $atts,
100 'trigger_button'
101 );
102 ob_start();
103 $user_id = get_current_user_id();
104 ?>
105
106 <form method="post" class="suretrigger_button_form" id="suretrigger_button_form_<?php echo esc_attr( (string) $atts['id'] ); ?>">
107 <input type="hidden" name="st_trigger_id" value="<?php echo esc_attr( (string) $atts['id'] ); ?>" />
108 <input type="hidden" name="st_nonce" value="<?php echo esc_attr( wp_create_nonce( 'suretrigger_form' ) ); ?>"/>
109 <input type="hidden" name="st_login_url" value="<?php echo esc_attr( $atts['user_redirect_url'] ); ?>"/>
110 <input type="hidden" name="st_non_login_url" value="<?php echo esc_attr( $atts['visitor_redirect_url'] ); ?>"/>
111 <input type="hidden" name="st_click" value="<?php echo esc_attr( $atts['click_once'] ); ?>"/>
112 <input type="hidden" name="st_button_label" value="<?php echo esc_attr( $atts['button_label'] ); ?>"/>
113 <input type="hidden" name="st_loading_label" value="<?php echo esc_attr( $atts['click_loading_label'] ); ?>"/>
114 <input type="hidden" name="st_clicked_label" value="<?php echo esc_attr( $atts['after_clicked_label'] ); ?>"/>
115 <input type="hidden" name="action" value="handle_trigger_button_click"/>
116 <input type="hidden" name="st_cookie_duration" value="<?php echo esc_attr( $atts['cookie_duration'] ); ?>"/>
117 <input type="hidden" name="st_user_id" value="<?php echo esc_attr( (string) $user_id ); ?>"/>
118 <?php
119 global $post;
120 if ( ! empty( $post ) && is_object( $post ) && isset( $post->ID ) && isset( $post->post_title ) ) {
121 ?>
122 <input type="hidden" name="st_button_post_id" value="<?php echo esc_attr( $post->ID ); ?>"/>
123 <input type="hidden" name="st_button_post_title" value="<?php echo esc_attr( $post->post_title ); ?>"/>
124 <?php
125 }
126 $cookie_name = 'st_trigger_button_clicked_' . esc_attr( (string) $atts['id'] );
127 if ( isset( $_COOKIE[ $cookie_name ] ) && 'yes_' . $user_id == $_COOKIE[ $cookie_name ] ) {
128 ?>
129 <button type="button" class="<?php echo esc_attr( $atts['button_class'] ); ?>" id="<?php echo esc_attr( $atts['button_id'] ); ?>"><?php echo esc_html( $atts['after_clicked_label'] ); ?></button>
130 <?php
131 } else {
132 ?>
133 <button type="button" class="<?php echo esc_attr( $atts['button_class'] ); ?>" id="<?php echo esc_attr( $atts['button_id'] ); ?>" onclick="st_trigger_ajax(this);return false;"><?php echo esc_html( $atts['button_label'] ); ?></button>
134 <?php
135 }
136 ?>
137 </form>
138
139 <?php
140 return ob_get_clean();
141 }
142 add_shortcode( 'st_trigger_button', 'suretrigger_button' );
143
144 /**
145 * SureTrigger Trigger Button custom style.
146 *
147 * @return void
148 */
149 function suretrigger_button_custom_style() {
150 wp_enqueue_style( 'st-trigger-button-style', SURE_TRIGGERS_URL . 'assets/css/st-trigger-button.css', [], SURE_TRIGGERS_VER );
151 wp_enqueue_script( 'st-trigger-button-script', SURE_TRIGGERS_URL . 'assets/js/st-trigger-button.js', [], SURE_TRIGGERS_VER, true );
152 wp_localize_script( 'st-trigger-button-script', 'st_ajax_object', [ 'ajax_url' => admin_url( 'admin-ajax.php' ) ] );
153 }
154 add_action( 'wp_enqueue_scripts', 'suretrigger_button_custom_style' );
155
156 /**
157 * SureTrigger Trigger Button action.
158 *
159 * @return void
160 */
161 function suretrigger_trigger_button_action() {
162
163 // Trigger the custom hook before ajax response.
164 do_action( 'st_trigger_button_before_click_hook' );
165
166 if ( ! isset( $_POST['st_nonce'] ) || ! wp_verify_nonce( wp_strip_all_tags( $_POST['st_nonce'] ), 'suretrigger_form' ) ) {
167 wp_send_json_error( [ 'error' => 'Invalid nonce' ] );
168 }
169
170 if ( is_user_logged_in() ) {
171 $user_id = get_current_user_id();
172
173 if ( isset( $_POST['st_trigger_id'] ) && ! empty( $_POST['st_trigger_id'] ) ) {
174
175 $st_trigger_id = sanitize_text_field( $_POST['st_trigger_id'] );
176
177 $cookie_duration = isset( $_POST['st_cookie_duration'] ) ? sanitize_text_field( $_POST['st_cookie_duration'] ) : '';
178 $st_click = isset( $_POST['st_click'] ) ? sanitize_text_field( $_POST['st_click'] ) : '';
179
180 $post_data = [];
181
182 if ( isset( $_POST['st_button_post_id'] ) ) {
183 $post_data['parent_post_id'] = sanitize_text_field( $_POST['st_button_post_id'] );
184 }
185
186 if ( isset( $_POST['st_button_post_title'] ) ) {
187 $post_data['parent_post_title'] = sanitize_text_field( $_POST['st_button_post_title'] );
188 }
189 do_action( 'st_trigger_button_action', $st_trigger_id, $user_id, sanitize_text_field( $cookie_duration ), $st_click, $post_data );
190
191 if ( isset( $_POST['st_login_url'] ) && ! empty( $_POST['st_login_url'] ) ) {
192 wp_send_json_success( esc_url_raw( $_POST['st_login_url'] ) );
193 }
194 }
195 } else {
196 if ( isset( $_POST['st_non_login_url'] ) && ! empty( $_POST['st_non_login_url'] ) ) {
197 wp_send_json_success( esc_url_raw( $_POST['st_non_login_url'] ) );
198 } else {
199 wp_send_json_success( wp_login_url() );
200 }
201 }
202
203 // Trigger the custom hook after ajax response.
204 do_action( 'st_trigger_button_after_click_hook' );
205
206 wp_die();
207 }
208 add_action( 'wp_ajax_handle_trigger_button_click', 'suretrigger_trigger_button_action' );
209 add_action( 'wp_ajax_nopriv_handle_trigger_button_click', 'suretrigger_trigger_button_action' );
210
211 /**
212 * SureTrigger Trigger Button set cookie.
213 *
214 * @param int $st_trigger_id Trigger ID.
215 * @param int $user_id User ID.
216 * @param int $cookie_duration Cookie Duration.
217 *
218 * @return void
219 */
220 function st_trigger_button_set_cookie( $st_trigger_id, $user_id, $cookie_duration ) {
221 // Set the cookie.
222 $cookie_name = 'st_trigger_button_clicked_' . $st_trigger_id;
223 $cookie_value = 'yes_' . $user_id;
224 if ( isset( $cookie_duration ) ) {
225 $expiration = time() + 60 * 60 * 24 * intval( $cookie_duration ); // Set the expiration time as per user requested.
226 } else {
227 $expiration = time() + 60 * 60 * 24 * 15;
228 }
229
230 if ( ! defined( 'COOKIEPATH' ) ) {
231 define( 'COOKIEPATH', '/' );
232 }
233
234 if ( ! defined( 'COOKIE_DOMAIN' ) ) {
235 define( 'COOKIE_DOMAIN', false );
236 }
237
238 $secure = is_ssl();
239 setcookie( $cookie_name, $cookie_value, $expiration, COOKIEPATH, COOKIE_DOMAIN, $secure, true ); // phpcs:ignore
240
241 }
242 add_action( 'st_trigger_button_set_cookie', 'st_trigger_button_set_cookie', 10, 3 );
243