PluginProbe
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder / 51.1.36
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder v51.1.36
51.1.83 51.1.82 51.1.81 51.1.79 51.1.78 51.1.77 51.1.76 51.1.74 51.1.75 51.1.65 51.1.64 51.1.63 trunk 51.1.14 51.1.2 51.1.35 51.1.36 51.1.37 51.1.38 51.1.39 51.1.44 51.1.45 51.1.46 51.1.47 51.1.49 All 37 releases
king-addons / includes / admin / layouts / settings-page.php

settings-page.php in King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder 51.1.36, at includes/admin/layouts/settings-page.php

453 lines 22.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 if (!defined('ABSPATH')) {
4 exit; // Exit if accessed directly.
5 }
6
7 // Handle form submission
8 if (isset($_POST['king_addons_settings_submit_settings'])) {
9 // Verify nonce for security
10 if (
11 !isset($_POST['king_addons_settings_nonce_field']) ||
12 !wp_verify_nonce($_POST['king_addons_settings_nonce_field'], 'king_addons_settings_save_settings')
13 ) {
14 wp_die('Security check failed.');
15 }
16
17 // Sanitize and save the submitted data
18 update_option('king_addons_google_map_api_key', sanitize_text_field($_POST['king_addons_google_map_api_key']));
19 update_option('king_addons_mailchimp_api_key', sanitize_text_field($_POST['king_addons_mailchimp_api_key']));
20 update_option('king_addons_recaptcha_v3_site_key', sanitize_text_field($_POST['king_addons_recaptcha_v3_site_key']));
21 update_option('king_addons_recaptcha_v3_secret_key', sanitize_text_field($_POST['king_addons_recaptcha_v3_secret_key']));
22 update_option('king_addons_recaptcha_v3_score_threshold', floatval($_POST['king_addons_recaptcha_v3_score_threshold']));
23
24 // Lightbox - colors
25 update_option('king_addons_lightbox_bg_color', sanitize_text_field($_POST['king_addons_lightbox_bg_color']));
26 update_option('king_addons_lightbox_toolbar_color', sanitize_text_field($_POST['king_addons_lightbox_toolbar_color']));
27 update_option('king_addons_lightbox_caption_color', sanitize_text_field($_POST['king_addons_lightbox_caption_color']));
28 update_option('king_addons_lightbox_gallery_color', sanitize_text_field($_POST['king_addons_lightbox_gallery_color']));
29 update_option('king_addons_lightbox_pb_color', sanitize_text_field($_POST['king_addons_lightbox_pb_color']));
30 update_option('king_addons_lightbox_ui_color', sanitize_text_field($_POST['king_addons_lightbox_ui_color']));
31 update_option('king_addons_lightbox_ui_hover_color', sanitize_text_field($_POST['king_addons_lightbox_ui_hover_color']));
32 update_option('king_addons_lightbox_text_color', sanitize_text_field($_POST['king_addons_lightbox_text_color']));
33
34 // Lightbox - numbers
35 update_option('king_addons_lightbox_icon_size', intval($_POST['king_addons_lightbox_icon_size']));
36 update_option('king_addons_lightbox_text_size', intval($_POST['king_addons_lightbox_text_size']));
37 update_option('king_addons_lightbox_arrow_size', intval($_POST['king_addons_lightbox_arrow_size']));
38
39 // Import Performance
40 $improve_import = isset($_POST['king_addons_improve_import_performance']) ? '1' : '0';
41 update_option('king_addons_improve_import_performance', $improve_import);
42
43 // Template Catalog Button (Premium only)
44 if (function_exists('king_addons_freemius') && king_addons_freemius()->can_use_premium_code()) {
45 $disable_template_catalog = isset($_POST['king_addons_disable_template_catalog_button']) ? '1' : '0';
46 update_option('king_addons_disable_template_catalog_button', $disable_template_catalog);
47 }
48
49 // Show a success message
50 add_settings_error('king_addons_messages', 'king_addons_message', esc_html__('Settings Saved', 'king-addons'), 'updated');
51 settings_errors('king_addons_messages');
52 }
53
54 // Get existing values from the database
55 $google_map_key = get_option('king_addons_google_map_api_key', '');
56 $mailchimp_key = get_option('king_addons_mailchimp_api_key', '');
57 $recaptcha_site_key = get_option('king_addons_recaptcha_v3_site_key', '');
58 $recaptcha_secret_key = get_option('king_addons_recaptcha_v3_secret_key', '');
59 $recaptcha_score_threshold = get_option('king_addons_recaptcha_v3_score_threshold', 0.5);
60
61 // Import Performance
62 $improve_import_performance = get_option('king_addons_improve_import_performance', '1');
63
64 // Template Catalog Button (Premium only)
65 $disable_template_catalog_button = get_option('king_addons_disable_template_catalog_button', '0');
66
67 // Render the settings form
68 ?>
69 <style>
70 #wpwrap,
71 #wpcontent,
72 .king-addons-settings {
73 display: none;
74 }
75
76 #wpcontent {
77 min-height: 100vh;
78 overflow-x: hidden;
79 }
80
81 #wpwrap,
82 html,
83 body,
84 #wpcontent {
85 background: #101112;
86 }
87
88 .wrap {
89 margin: 0;
90 }
91
92 .king-addons-settings {
93 max-width: 1200px;
94 margin: 10px 20px 0 0;
95 padding: 20px;
96 border-radius: 30px;
97 font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
98 }
99
100 h1.title {
101 font-size: 25px;
102 font-weight: 600;
103 line-height: 1.5;
104 display: inline-block;
105 margin-top: 0;
106 margin-bottom: 20px;
107 padding: 0;
108 background: linear-gradient(45deg, #E1CBFF, #9B62FF 50%, #5B03FF);
109 background-clip: text; /* Standard property for compatibility */
110 -webkit-background-clip: text;
111 -webkit-text-fill-color: transparent;
112 }
113
114 h2.king-addons-settings-group-title {
115 font-size: 22px;
116 color: #646970;
117 font-weight: 600;
118 }
119
120 .king-addons-settings-table-wrap {
121 padding: 30px 40px;
122 border-radius: 30px;
123 background: #1a1b1b;
124 }
125
126 th label {
127 color: white;
128 font-size: 15px;
129 }
130
131 .form-table td p,
132 .form-table td p span {
133 font-size: 15px;
134 line-height: 1.4705882353;
135 font-weight: 500;
136 letter-spacing: normal;
137 margin-top: 13px;
138 color: #646970;
139 }
140
141 input[type=text],
142 input[type=number] {
143 background: #262829;
144 font-size: 16px;
145 color: white;
146 border: 1px solid #484c4e;
147 padding: 3px 14px;
148 }
149
150 .king-addons-premium-badge {
151 display: inline-block;
152 background: linear-gradient(135deg, #FF6B35 0%, #F7931E 100%);
153 background-clip: padding-box; /* Standard property for compatibility */
154 -webkit-background-clip: padding-box;
155 color: white;
156 font-size: 10px;
157 font-weight: 600;
158 padding: 2px 6px;
159 border-radius: 3px;
160 text-transform: uppercase;
161 letter-spacing: 0.5px;
162 box-shadow: 0 1px 3px rgba(255, 107, 53, 0.3);
163 }
164 </style>
165 <div class="wrap">
166 <div class="king-addons-settings">
167 <h1 class="title"><?php echo esc_html__('Settings', 'king-addons'); ?></h1>
168 <form method="post" action="">
169 <?php
170 // Nonce field for security
171 wp_nonce_field('king_addons_settings_save_settings', 'king_addons_settings_nonce_field');
172 ?>
173 <div class="king-addons-settings-table-wrap">
174
175 <h2 class="king-addons-settings-group-title"><?php esc_html_e('Integrations', 'king-addons'); ?></h2>
176 <table class="form-table">
177 <tr>
178 <th scope="row">
179 <label for="king_addons_google_map_api_key"><?php echo esc_html__('Google Map API Key', 'king-addons'); ?></label>
180 </th>
181 <td>
182 <input
183 type="text"
184 name="king_addons_google_map_api_key"
185 id="king_addons_google_map_api_key"
186 value="<?php echo esc_attr($google_map_key); ?>"
187 class="regular-text">
188 <p class="description">
189 <span><?php echo esc_html__('Enter your Google Map API key. You can obtain it from the Google Cloud Platform.', 'king-addons'); ?></span>
190 <br>
191 <a href="https://www.youtube.com/watch?v=O5cUoVpVUjU"
192 target="_blank"><?php esc_html_e('How to get Google Map API Key?', 'king-addons'); ?></a>
193 </p>
194 </td>
195 </tr>
196
197 <tr>
198 <th scope="row">
199 <label for="king_addons_mailchimp_api_key"><?php echo esc_html__('MailChimp API Key', 'king-addons'); ?></label>
200 </th>
201 <td>
202 <input
203 type="text"
204 name="king_addons_mailchimp_api_key"
205 id="king_addons_mailchimp_api_key"
206 value="<?php echo esc_attr($mailchimp_key); ?>"
207 class="regular-text">
208 <p class="description">
209 <span><?php echo esc_html__('Insert your MailChimp API key here to integrate mailing features.', 'king-addons'); ?></span>
210 <br>
211 <a href="https://mailchimp.com/help/about-api-keys/"
212 target="_blank"><?php esc_html_e('How to get MailChimp API Key?', 'king-addons'); ?></a>
213 </p>
214 </td>
215 </tr>
216
217 <tr>
218 <th scope="row">
219 <label for="king_addons_recaptcha_v3_site_key"><?php echo esc_html__('reCAPTCHA - Site Key', 'king-addons'); ?></label>
220 </th>
221 <td>
222 <input
223 type="text"
224 name="king_addons_recaptcha_v3_site_key"
225 id="king_addons_recaptcha_v3_site_key"
226 value="<?php echo esc_attr($recaptcha_site_key); ?>"
227 class="regular-text">
228 <p class="description">
229 <span><?php echo esc_html__('Enter your reCAPTCHA Site Key from the Google reCAPTCHA admin console. Add a reCAPTCHA element to the Form Builder fields to make it work.', 'king-addons'); ?></span>
230 <br>
231 <a href="https://www.google.com/recaptcha/about/"
232 target="_blank"><?php esc_html_e('How to get reCAPTCHA Site Key?', 'king-addons'); ?></a>
233 </p>
234 </td>
235 </tr>
236
237 <tr>
238 <th scope="row">
239 <label for="king_addons_recaptcha_v3_secret_key"><?php echo esc_html__('reCAPTCHA - Secret Key', 'king-addons'); ?></label>
240 </th>
241 <td>
242 <input
243 type="text"
244 name="king_addons_recaptcha_v3_secret_key"
245 id="king_addons_recaptcha_v3_secret_key"
246 value="<?php echo esc_attr($recaptcha_secret_key); ?>"
247 class="regular-text">
248 <p class="description">
249 <span><?php echo esc_html__('Your reCAPTCHA Secret Key. Make sure to keep this secure.', 'king-addons'); ?></span>
250 <br>
251 </p>
252 </td>
253 </tr>
254
255 <tr>
256 <th scope="row">
257 <label for="king_addons_recaptcha_v3_score_threshold"><?php echo esc_html__('reCAPTCHA - Score Threshold', 'king-addons'); ?></label>
258 </th>
259 <td>
260 <input
261 type="number"
262 step="0.1"
263 min="0"
264 max="1"
265 placeholder="0.5"
266 name="king_addons_recaptcha_v3_score_threshold"
267 id="king_addons_recaptcha_v3_score_threshold"
268 value="<?php echo esc_attr($recaptcha_score_threshold); ?>"
269 class="regular-text">
270 <p class="description">
271 <?php echo esc_html__('Set a score threshold (0.0 to 1.0) for reCAPTCHA.', 'king-addons'); ?>
272 </p>
273 </td>
274 </tr>
275 </table>
276
277 <hr class="king-addons-settings-separator">
278
279 <h2 class="king-addons-settings-group-title"><?php esc_html_e('Lightbox', 'king-addons'); ?></h2>
280 <table class="form-table">
281
282 <tr>
283 <th scope="row"><label
284 for="king_addons_lightbox_text_color"><?php esc_html_e('Text Color', 'king-addons'); ?></label>
285 </th>
286 <td><input type="text" name="king_addons_lightbox_text_color"
287 id="king_addons_lightbox_text_color" data-alpha-enabled="true"
288 data-default-color="#efefef"
289 value="<?php echo esc_attr(get_option('king_addons_lightbox_text_color', '#efefef')); ?>">
290 </td>
291 </tr>
292
293 <tr>
294 <th scope="row"><label
295 for="king_addons_lightbox_bg_color"><?php esc_html_e('Background Color', 'king-addons'); ?></label>
296 </th>
297 <td><input type="text" name="king_addons_lightbox_bg_color"
298 id="king_addons_lightbox_bg_color"
299 data-alpha-enabled="true" data-default-color="rgba(0,0,0,0.6)"
300 value="<?php echo esc_attr(get_option('king_addons_lightbox_bg_color', 'rgba(0,0,0,0.6)')); ?>">
301 </td>
302 </tr>
303
304 <tr>
305 <th scope="row"><label
306 for="king_addons_lightbox_toolbar_color"><?php esc_html_e('Toolbar BG Color', 'king-addons'); ?></label>
307 </th>
308 <td><input type="text" name="king_addons_lightbox_toolbar_color"
309 id="king_addons_lightbox_toolbar_color" data-alpha-enabled="true"
310 data-default-color="rgba(0,0,0,0.8)"
311 value="<?php echo esc_attr(get_option('king_addons_lightbox_toolbar_color', 'rgba(0,0,0,0.8)')); ?>">
312 </td>
313 </tr>
314
315 <tr>
316 <th scope="row"><label
317 for="king_addons_lightbox_caption_color"><?php esc_html_e('Caption BG Color', 'king-addons'); ?></label>
318 </th>
319 <td><input type="text" name="king_addons_lightbox_caption_color"
320 id="king_addons_lightbox_caption_color" data-alpha-enabled="true"
321 data-default-color="rgba(0,0,0,0.8)"
322 value="<?php echo esc_attr(get_option('king_addons_lightbox_caption_color', 'rgba(0,0,0,0.8)')); ?>">
323 </td>
324 </tr>
325
326 <tr>
327 <th scope="row"><label
328 for="king_addons_lightbox_gallery_color"><?php esc_html_e('Gallery BG Color', 'king-addons'); ?></label>
329 </th>
330 <td><input type="text" name="king_addons_lightbox_gallery_color"
331 id="king_addons_lightbox_gallery_color" data-alpha-enabled="true"
332 data-default-color="#444444"
333 value="<?php echo esc_attr(get_option('king_addons_lightbox_gallery_color', '#444444')); ?>">
334 </td>
335 </tr>
336
337 <tr>
338 <th scope="row"><label
339 for="king_addons_lightbox_pb_color"><?php esc_html_e('Progress Bar Color', 'king-addons'); ?></label>
340 </th>
341 <td><input type="text" name="king_addons_lightbox_pb_color"
342 id="king_addons_lightbox_pb_color"
343 data-alpha-enabled="true" data-default-color="#8a8a8a"
344 value="<?php echo esc_attr(get_option('king_addons_lightbox_pb_color', '#8a8a8a')); ?>">
345 </td>
346 </tr>
347
348 <tr>
349 <th scope="row"><label
350 for="king_addons_lightbox_ui_color"><?php esc_html_e('UI Color', 'king-addons'); ?></label>
351 </th>
352 <td><input type="text" name="king_addons_lightbox_ui_color"
353 id="king_addons_lightbox_ui_color"
354 data-alpha-enabled="true" data-default-color="#efefef"
355 value="<?php echo esc_attr(get_option('king_addons_lightbox_ui_color', '#efefef')); ?>">
356 </td>
357 </tr>
358
359 <tr>
360 <th scope="row"><label
361 for="king_addons_lightbox_ui_hover_color"><?php esc_html_e('UI Hover Color', 'king-addons'); ?></label>
362 </th>
363 <td><input type="text" name="king_addons_lightbox_ui_hover_color"
364 id="king_addons_lightbox_ui_hover_color" data-alpha-enabled="true"
365 data-default-color="#ffffff"
366 value="<?php echo esc_attr(get_option('king_addons_lightbox_ui_hover_color', '#ffffff')); ?>">
367 </td>
368 </tr>
369
370 <tr>
371 <th scope="row"><label
372 for="king_addons_lightbox_icon_size"><?php esc_html_e('UI Icon Size', 'king-addons'); ?></label>
373 </th>
374 <td><input type="number" name="king_addons_lightbox_icon_size"
375 id="king_addons_lightbox_icon_size"
376 value="<?php echo esc_attr(get_option('king_addons_lightbox_icon_size', '20')); ?>">
377 </td>
378 </tr>
379
380 <tr>
381 <th scope="row"><label
382 for="king_addons_lightbox_arrow_size"><?php esc_html_e('Navigation Arrow Size', 'king-addons'); ?></label>
383 </th>
384 <td><input type="number" name="king_addons_lightbox_arrow_size"
385 id="king_addons_lightbox_arrow_size"
386 value="<?php echo esc_attr(get_option('king_addons_lightbox_arrow_size', '35')); ?>">
387 </td>
388 </tr>
389
390 <tr>
391 <th scope="row"><label
392 for="king_addons_lightbox_text_size"><?php esc_html_e('Text Size', 'king-addons'); ?></label>
393 </th>
394 <td><input type="number" name="king_addons_lightbox_text_size"
395 id="king_addons_lightbox_text_size"
396 value="<?php echo esc_attr(get_option('king_addons_lightbox_text_size', '14')); ?>">
397 </td>
398 </tr>
399
400 </table>
401
402 <hr class="king-addons-settings-separator">
403
404 <h2 class="king-addons-settings-group-title"><?php esc_html_e('Import Templates', 'king-addons'); ?></h2>
405 <table class="form-table">
406 <tr>
407 <th scope="row">
408 <label for="king_addons_improve_import_performance"><?php echo esc_html__('Improve import on low-performance servers', 'king-addons'); ?></label>
409 </th>
410 <td>
411 <input
412 type="checkbox"
413 name="king_addons_improve_import_performance"
414 id="king_addons_improve_import_performance"
415 value="1"
416 <?php checked($improve_import_performance, '1'); ?>
417 >
418 <p class="description">
419 <?php echo esc_html__('Enable this to apply optimizations like increased PHP execution time limits and disabling intermediate image generation during template import. Recommended for servers with limited resources. Enabled by default.', 'king-addons'); ?>
420 </p>
421 </td>
422 </tr>
423 <?php if (function_exists('king_addons_freemius') && king_addons_freemius()->can_use_premium_code()) : ?>
424 <tr>
425 <th scope="row">
426 <label for="king_addons_disable_template_catalog_button"><?php echo esc_html__('Disable Template Catalog Button in Elementor Editor', 'king-addons'); ?>
427 <span class="king-addons-premium-badge"><?php echo esc_html__('PREMIUM', 'king-addons'); ?></span>
428 </label>
429 </th>
430 <td>
431 <input
432 type="checkbox"
433 name="king_addons_disable_template_catalog_button"
434 id="king_addons_disable_template_catalog_button"
435 value="1"
436 <?php checked($disable_template_catalog_button, '1'); ?>
437 >
438 <p class="description">
439 <?php echo esc_html__('Check this to hide the "Start with a Template" button that appears in the Elementor editor. This is useful if you prefer a cleaner editing interface without template suggestions.', 'king-addons'); ?>
440 </p>
441 </td>
442 </tr>
443 <?php endif; ?>
444 </table>
445
446 </div>
447 <div class="kng-btn-submit-wrap">
448 <button type="submit" name="king_addons_settings_submit_settings" id="submit" class="kng-btn-submit"
449 value="submit"><?php echo esc_html__('SAVE SETTINGS', 'king-addons'); ?></button>
450 </div>
451 </form>
452 </div>
453 </div>