| 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'); |