PluginProbe
User Submitted Posts – Enable Users to Submit Posts from the Front End / 20250329
User Submitted Posts – Enable Users to Submit Posts from the Front End v20250329
20260916 20260810 20260608 20230806 20230809 20230811 20230901 20230902 20230914 20231102 20240319 20240516 20240703 20241026 20250327 20250329 20251121 20251210 20260110 20260113 20260207 20260217 20260407 20260422 trunk All 59 releases
user-submitted-posts / library / enqueue-scripts.php

enqueue-scripts.php in User Submitted Posts – Enable Users to Submit Posts from the Front End 20250329, at library/enqueue-scripts.php

223 lines 7.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php // User Submitted Posts - Enqueue Script & Style
2
3 if (!defined('ABSPATH')) die();
4
5 function usp_enqueueResources() {
6
7 global $usp_options;
8
9 $min_images = isset($usp_options['min-images']) ? $usp_options['min-images'] : null;
10 $include_js = isset($usp_options['usp_include_js']) ? $usp_options['usp_include_js'] : null;
11 $form_type = isset($usp_options['usp_form_version']) ? $usp_options['usp_form_version'] : null;
12 $display_url = isset($usp_options['usp_display_url']) ? $usp_options['usp_display_url'] : null;
13 $recaptcha = isset($usp_options['usp_recaptcha']) ? $usp_options['usp_recaptcha'] : null;
14 $turnstile = isset($usp_options['usp_turnstile']) ? $usp_options['usp_turnstile'] : null;
15 $multi_cats = isset($usp_options['multiple-cats']) ? $usp_options['multiple-cats'] : null;
16 $existing_tags = isset($usp_options['usp_existing_tags']) ? $usp_options['usp_existing_tags'] : null;
17
18 $protocol = is_ssl() ? 'https://' : 'http://';
19
20 $http_host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'undefined';
21
22 $request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '/na';
23
24 $current_url = esc_url_raw($protocol . $http_host . $request_uri);
25
26 $current_url = remove_query_arg(array('submission-error', 'error', 'success', 'post_id'), $current_url);
27
28 $plugin_url = plugins_url('/user-submitted-posts');
29
30 $custom_url = get_stylesheet_directory_uri() .'/usp/usp.css';
31
32 $custom_path = get_stylesheet_directory() .'/usp/usp.css';
33
34 $usp_css = ($form_type === 'custom' && file_exists($custom_path)) ? $custom_url : $plugin_url . '/resources/usp.css';
35
36 $display_js = false;
37 $display_css = false;
38
39 if (!empty($display_url)) {
40
41 $display_urls = explode(',', $display_url);
42
43 foreach ($display_urls as $url) {
44
45 $url = esc_url_raw(trim($url));
46
47 if ($url === $current_url) {
48
49 if ($include_js == true) $display_js = true;
50 if ($form_type !== 'disable') $display_css = true;
51
52 break;
53
54 }
55
56 }
57
58 } else {
59
60 if ($include_js == true) $display_js = true;
61 if ($form_type !== 'disable') $display_css = true;
62
63 }
64
65 if ($display_css) {
66
67 wp_enqueue_style('usp_style', $usp_css, array(), USP_VERSION, 'all');
68
69 }
70
71 if ($display_js) {
72
73 $deps = array();
74
75 if ($recaptcha === 'show') {
76
77 usp_enqueue_recaptcha();
78
79 array_push($deps, 'usp_recaptcha');
80
81 }
82
83 if ($turnstile === 'show') {
84
85 usp_enqueue_turnstile();
86
87 array_push($deps, 'usp_turnstile');
88
89 }
90
91 if ($multi_cats || $existing_tags) {
92
93 wp_enqueue_script('usp_chosen', $plugin_url .'/resources/jquery.chosen.js', array('jquery'), USP_VERSION);
94
95 array_push($deps, 'jquery', 'usp_chosen');
96
97 }
98
99 array_push($deps, 'jquery', 'usp_cookie', 'usp_parsley');
100
101 $deps = array_unique($deps);
102
103 wp_enqueue_script('usp_cookie', $plugin_url .'/resources/jquery.cookie.js', array('jquery'), USP_VERSION);
104 wp_enqueue_script('usp_parsley', $plugin_url .'/resources/jquery.parsley.min.js', array('jquery'), USP_VERSION);
105 wp_enqueue_script('usp_core', $plugin_url .'/resources/jquery.usp.core.js', $deps, USP_VERSION);
106
107 usp_inline_script();
108
109 }
110
111 }
112 add_action('wp_enqueue_scripts', 'usp_enqueueResources');
113
114 function usp_enqueue_recaptcha() {
115
116 global $usp_options;
117
118 if (isset($usp_options['usp_recaptcha']) && ($usp_options['usp_recaptcha'] == 'show')) {
119
120 $recaptcha = isset($usp_options['recaptcha_public']) ? $usp_options['recaptcha_public'] : '';
121 $version = isset($usp_options['recaptcha_version']) ? $usp_options['recaptcha_version'] : 2;
122
123 $query = apply_filters('usp_recaptcha_querystring', '');
124
125 if ($version == 3) {
126
127 $query = !empty($query) ? '&hl='. $query : '';
128
129 wp_enqueue_script('usp_recaptcha', 'https://www.google.com/recaptcha/api.js?render='. $recaptcha . $query, array(), null);
130
131 } else {
132
133 $query = !empty($query) ? '?hl='. $query : '';
134
135 wp_enqueue_script('usp_recaptcha', 'https://www.google.com/recaptcha/api.js'. $query, array(), USP_VERSION);
136
137 }
138
139 }
140
141 }
142
143 function usp_enqueue_turnstile() {
144
145 wp_enqueue_script('usp_turnstile', 'https://challenges.cloudflare.com/turnstile/v0/api.js', array(), null);
146
147 }
148
149 function usp_inline_script() {
150
151 global $usp_options;
152
153 $min_images = isset($usp_options['min-images']) ? $usp_options['min-images'] : '';
154 $max_images = isset($usp_options['max-images']) ? $usp_options['max-images'] : '';
155 $custom_field = isset($usp_options['custom_name']) ? $usp_options['custom_name'] : '';
156 $custom_field_2 = isset($usp_options['custom_name_2']) ? $usp_options['custom_name_2'] : '';
157 $custom_checkbox = isset($usp_options['custom_checkbox_name']) ? $usp_options['custom_checkbox_name'] : '';
158 $usp_casing = isset($usp_options['usp_casing']) ? $usp_options['usp_casing'] : '';
159 $multiple_cats = isset($usp_options['multiple-cats']) ? $usp_options['multiple-cats'] : '';
160 $existing_tags = isset($usp_options['usp_existing_tags']) ? $usp_options['usp_existing_tags'] : '';
161 $recaptcha_disp = isset($usp_options['usp_recaptcha']) ? $usp_options['usp_recaptcha'] : '';
162 $recaptcha_vers = isset($usp_options['recaptcha_version']) ? $usp_options['recaptcha_version'] : 2;
163 $recaptcha_key = isset($usp_options['recaptcha_public']) ? $usp_options['recaptcha_public'] : '';
164
165 $print_casing = $usp_casing ? 'true' : 'false';
166 $parsley_error = apply_filters('usp_parsley_error', esc_html__('Incorrect response.', 'usp'));
167 $challenge_nonce = wp_create_nonce('challenge_nonce');
168 $ajax_url = admin_url('admin-ajax.php');
169
170 $script = 'var usp_custom_field = '. json_encode($custom_field) .'; ';
171 $script .= 'var usp_custom_field_2 = '. json_encode($custom_field_2) .'; ';
172 $script .= 'var usp_custom_checkbox = '. json_encode($custom_checkbox) .'; ';
173 $script .= 'var usp_case_sensitivity = '. json_encode($print_casing) .'; ';
174 $script .= 'var usp_min_images = '. json_encode($min_images) .'; ';
175 $script .= 'var usp_max_images = '. json_encode($max_images) .'; ';
176 $script .= 'var usp_parsley_error = '. json_encode($parsley_error) .'; ';
177 $script .= 'var usp_multiple_cats = '. json_encode($multiple_cats) .'; ';
178 $script .= 'var usp_existing_tags = '. json_encode($existing_tags) .'; ';
179 $script .= 'var usp_recaptcha_disp = '. json_encode($recaptcha_disp) .'; ';
180 $script .= 'var usp_recaptcha_vers = '. json_encode($recaptcha_vers) .'; ';
181 $script .= 'var usp_recaptcha_key = '. json_encode($recaptcha_key) .'; ';
182 $script .= 'var challenge_nonce = '. json_encode($challenge_nonce) .'; ';
183 $script .= 'var ajax_url = '. json_encode($ajax_url) .'; ';
184
185 wp_add_inline_script('usp_core', $script, 'before');
186
187 }
188
189 function usp_load_admin_styles($hook) {
190
191 global $pagenow;
192
193 if ($hook === 'settings_page_user-submitted-posts') {
194
195 wp_enqueue_style('dashicons');
196 wp_enqueue_style ('usp_admin_styles', USP_URL .'resources/usp-admin.css', array(), USP_VERSION, 'all');
197 wp_enqueue_script('usp_admin_script', USP_URL .'resources/jquery.usp.admin.js', array('jquery'), USP_VERSION, false);
198 wp_enqueue_media();
199
200 }
201
202 if ($pagenow === 'edit.php') {
203
204 wp_enqueue_style('usp_posts_styles', USP_URL .'resources/usp-posts.css', array(), USP_VERSION, 'all');
205
206 }
207
208 }
209 add_action('admin_enqueue_scripts', 'usp_load_admin_styles');
210
211 function usp_ajax_challenge_nonce() {
212
213 check_ajax_referer('challenge_nonce', 'nonce');
214
215 global $usp_options;
216
217 echo isset($usp_options['usp_response']) ? $usp_options['usp_response'] : '';
218
219 wp_die(); //
220
221 }
222 add_action('wp_ajax_challenge_nonce', 'usp_ajax_challenge_nonce');
223 add_action('wp_ajax_nopriv_challenge_nonce', 'usp_ajax_challenge_nonce');