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

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

225 lines 7.9 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 do_action('usp_enqueue_after', $plugin_url, $deps);
108
109 usp_inline_script();
110
111 }
112
113 }
114 add_action('wp_enqueue_scripts', 'usp_enqueueResources');
115
116 function usp_enqueue_recaptcha() {
117
118 global $usp_options;
119
120 if (isset($usp_options['usp_recaptcha']) && ($usp_options['usp_recaptcha'] == 'show')) {
121
122 $recaptcha = isset($usp_options['recaptcha_public']) ? $usp_options['recaptcha_public'] : '';
123 $version = isset($usp_options['recaptcha_version']) ? $usp_options['recaptcha_version'] : 2;
124
125 $query = apply_filters('usp_recaptcha_querystring', '');
126
127 if ($version == 3) {
128
129 $query = !empty($query) ? '&hl='. $query : '';
130
131 wp_enqueue_script('usp_recaptcha', 'https://www.google.com/recaptcha/api.js?render='. $recaptcha . $query, array(), null);
132
133 } else {
134
135 $query = !empty($query) ? '?hl='. $query : '';
136
137 wp_enqueue_script('usp_recaptcha', 'https://www.google.com/recaptcha/api.js'. $query, array(), USP_VERSION);
138
139 }
140
141 }
142
143 }
144
145 function usp_enqueue_turnstile() {
146
147 wp_enqueue_script('usp_turnstile', 'https://challenges.cloudflare.com/turnstile/v0/api.js', array(), null);
148
149 }
150
151 function usp_inline_script() {
152
153 global $usp_options;
154
155 $min_images = isset($usp_options['min-images']) ? $usp_options['min-images'] : '';
156 $max_images = isset($usp_options['max-images']) ? $usp_options['max-images'] : '';
157 $custom_field = isset($usp_options['custom_name']) ? $usp_options['custom_name'] : '';
158 $custom_field_2 = isset($usp_options['custom_name_2']) ? $usp_options['custom_name_2'] : '';
159 $custom_checkbox = isset($usp_options['custom_checkbox_name']) ? $usp_options['custom_checkbox_name'] : '';
160 $usp_casing = isset($usp_options['usp_casing']) ? $usp_options['usp_casing'] : '';
161 $multiple_cats = isset($usp_options['multiple-cats']) ? $usp_options['multiple-cats'] : '';
162 $existing_tags = isset($usp_options['usp_existing_tags']) ? $usp_options['usp_existing_tags'] : '';
163 $recaptcha_disp = isset($usp_options['usp_recaptcha']) ? $usp_options['usp_recaptcha'] : '';
164 $recaptcha_vers = isset($usp_options['recaptcha_version']) ? $usp_options['recaptcha_version'] : 2;
165 $recaptcha_key = isset($usp_options['recaptcha_public']) ? $usp_options['recaptcha_public'] : '';
166
167 $print_casing = $usp_casing ? 'true' : 'false';
168 $parsley_error = apply_filters('usp_parsley_error', esc_html__('Incorrect response.', 'usp'));
169 $challenge_nonce = wp_create_nonce('challenge_nonce');
170 $ajax_url = admin_url('admin-ajax.php');
171
172 $script = 'var usp_custom_field = '. json_encode($custom_field) .'; ';
173 $script .= 'var usp_custom_field_2 = '. json_encode($custom_field_2) .'; ';
174 $script .= 'var usp_custom_checkbox = '. json_encode($custom_checkbox) .'; ';
175 $script .= 'var usp_case_sensitivity = '. json_encode($print_casing) .'; ';
176 $script .= 'var usp_min_images = '. json_encode($min_images) .'; ';
177 $script .= 'var usp_max_images = '. json_encode($max_images) .'; ';
178 $script .= 'var usp_parsley_error = '. json_encode($parsley_error) .'; ';
179 $script .= 'var usp_multiple_cats = '. json_encode($multiple_cats) .'; ';
180 $script .= 'var usp_existing_tags = '. json_encode($existing_tags) .'; ';
181 $script .= 'var usp_recaptcha_disp = '. json_encode($recaptcha_disp) .'; ';
182 $script .= 'var usp_recaptcha_vers = '. json_encode($recaptcha_vers) .'; ';
183 $script .= 'var usp_recaptcha_key = '. json_encode($recaptcha_key) .'; ';
184 $script .= 'var challenge_nonce = '. json_encode($challenge_nonce) .'; ';
185 $script .= 'var ajax_url = '. json_encode($ajax_url) .'; ';
186
187 wp_add_inline_script('usp_core', $script, 'before');
188
189 }
190
191 function usp_load_admin_styles($hook) {
192
193 global $pagenow;
194
195 if ($hook === 'settings_page_user-submitted-posts') {
196
197 wp_enqueue_style('dashicons');
198 wp_enqueue_style ('usp_admin_styles', USP_URL .'resources/usp-admin.css', array(), USP_VERSION, 'all');
199 wp_enqueue_script('usp_admin_script', USP_URL .'resources/jquery.usp.admin.js', array('jquery'), USP_VERSION, false);
200 wp_enqueue_media();
201
202 }
203
204 if ($pagenow === 'edit.php') {
205
206 wp_enqueue_style('usp_posts_styles', USP_URL .'resources/usp-posts.css', array(), USP_VERSION, 'all');
207
208 }
209
210 }
211 add_action('admin_enqueue_scripts', 'usp_load_admin_styles');
212
213 function usp_ajax_challenge_nonce() {
214
215 check_ajax_referer('challenge_nonce', 'nonce');
216
217 global $usp_options;
218
219 echo isset($usp_options['usp_response']) ? $usp_options['usp_response'] : '';
220
221 wp_die(); //
222
223 }
224 add_action('wp_ajax_challenge_nonce', 'usp_ajax_challenge_nonce');
225 add_action('wp_ajax_nopriv_challenge_nonce', 'usp_ajax_challenge_nonce');