PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.0.75
OttoKit: All-in-One Automation Platform v1.0.75
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
239 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();
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 if ( isset( $_POST['st_cookie_duration'] ) || isset( $_POST['st_click'] ) ) {
178 if ( isset( $_POST['st_button_post_id'] ) || isset( $_POST['st_button_post_title'] ) ) {
179 $post_data = [
180 'parent_post_id' => sanitize_text_field( $_POST['st_button_post_id'] ),
181 'parent_post_title' => sanitize_text_field( $_POST['st_button_post_title'] ),
182 ];
183 } else {
184 $post_data = [];
185 }
186 do_action( 'st_trigger_button_action', $st_trigger_id, $user_id, sanitize_text_field( $_POST['st_cookie_duration'] ), $_POST['st_click'], $post_data );
187 }
188
189 if ( isset( $_POST['st_login_url'] ) && ! empty( $_POST['st_login_url'] ) ) {
190 wp_send_json_success( esc_url( $_POST['st_login_url'] ) );
191 }
192 }
193 } else {
194 if ( isset( $_POST['st_non_login_url'] ) && ! empty( $_POST['st_non_login_url'] ) ) {
195 wp_send_json_success( esc_url( $_POST['st_non_login_url'] ) );
196 } else {
197 wp_send_json_success( wp_login_url() );
198 }
199 }
200
201 // Trigger the custom hook after ajax response.
202 do_action( 'st_trigger_button_after_click_hook' );
203
204 wp_die();
205 }
206 add_action( 'wp_ajax_handle_trigger_button_click', 'suretrigger_trigger_button_action' );
207 add_action( 'wp_ajax_nopriv_handle_trigger_button_click', 'suretrigger_trigger_button_action' );
208
209 /**
210 * SureTrigger Trigger Button set cookie.
211 *
212 * @param int $st_trigger_id Trigger ID.
213 * @param int $user_id User ID.
214 * @param int $cookie_duration Cookie Duration.
215 *
216 * @return void
217 */
218 function st_trigger_button_set_cookie( $st_trigger_id, $user_id, $cookie_duration ) {
219 // Set the cookie.
220 $cookie_name = 'st_trigger_button_clicked_' . $st_trigger_id;
221 $cookie_value = 'yes_' . $user_id;
222 if ( isset( $cookie_duration ) ) {
223 $expiration = time() + 60 * 60 * 24 * intval( $cookie_duration ); // Set the expiration time as per user requested.
224 } else {
225 $expiration = time() + 60 * 60 * 24 * 15;
226 }
227
228 if ( ! defined( 'COOKIEPATH' ) ) {
229 define( 'COOKIEPATH', '/' );
230 }
231
232 if ( ! defined( 'COOKIE_DOMAIN' ) ) {
233 define( 'COOKIE_DOMAIN', false );
234 }
235
236 setcookie( $cookie_name, $cookie_value, $expiration, COOKIEPATH, COOKIE_DOMAIN );
237 }
238 add_action( 'st_trigger_button_set_cookie', 'st_trigger_button_set_cookie', 10, 3 );
239