PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 3.0.3
Adminify – White Label, Admin Menu Editor, Login Customizer v3.0.3
4.3.1 4.3.0 4.2.26 4.2.25 4.2.24 4.2.23 4.2.22 4.2.21 4.2.20 4.2.19 4.2.18 4.2.17 4.2.16 4.2.15 4.2.14 4.2.13 4.2.12 4.2.11 4.2.10 4.2.9 4.2.8 4.2.7 4.2.6 4.2.5 4.1.17 All 164 releases
adminify / Inc / utils.php

utils.php in Adminify – White Label, Admin Menu Editor, Login Customizer 3.0.3, at Inc/utils.php

747 lines 26.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace WPAdminify\Inc;
4
5 use WPAdminify\Inc\Classes\Helper ;
6 // no direct access allowed
7 if ( !defined( 'ABSPATH' ) ) {
8 exit;
9 }
10 class Utils
11 {
12 public $post_types = '' ;
13 /**
14 * Check if the Module is Enable/Disable
15 *
16 * @param [type] $value
17 *
18 * @return void
19 */
20 public static function check_modules( $value )
21 {
22
23 if ( empty($value) ) {
24 return;
25 } else {
26 return true;
27 }
28
29 }
30
31 /**
32 * Check given value empty or not
33 *
34 * @param [type] $value
35 *
36 * @return void
37 */
38 public static function check_is_empty( $value, $default = '' )
39 {
40 $value = ( !empty(esc_attr( $value )) ? $value : $default );
41 return $value;
42 }
43
44 /**
45 * Check given value empty or not
46 *
47 * @param [type] $value
48 *
49 * @return void
50 */
51 public static function restricted_for( $restrict_for )
52 {
53 if ( !is_array( $restrict_for ) ) {
54 $restrict_for = [ 'administrator' ];
55 }
56 if ( !function_exists( 'wp_get_current_user' ) ) {
57 include ABSPATH . "wp-includes/pluggable.php";
58 }
59 $current_user = wp_get_current_user();
60 $current_name = $current_user->display_name;
61 $current_roles = $current_user->roles;
62 $all_roles = wp_roles()->get_names();
63 if ( in_array( $current_name, $restrict_for ) ) {
64 return true;
65 }
66 // Super Admin for Multisite
67 if ( is_super_admin() && is_multisite() ) {
68
69 if ( in_array( 'Super Admin', $restrict_for ) ) {
70 return true;
71 } else {
72 return false;
73 }
74
75 }
76 // Normal Super Admin
77 // if ($current_user->ID === 1) {
78 // if (in_array('Super Admin', $restrict_for)) {
79 // return true;
80 // } else {
81 // return false;
82 // }
83 // }
84 foreach ( $current_roles as $role ) {
85 $role_name = $all_roles[$role];
86 if ( in_array( strtolower( $role_name ), $restrict_for ) ) {
87 return true;
88 }
89 }
90 }
91
92 /**
93 * Check Site wide plugin settings
94 */
95 public static function is_site_wide( $plugin )
96 {
97 if ( !is_multisite() ) {
98 return false;
99 }
100 $plugins = get_site_option( 'active_sitewide_plugins' );
101 if ( isset( $plugins[$plugin] ) ) {
102 return true;
103 }
104 return false;
105 }
106
107 /**
108 * Restricts for role / user
109 */
110 public static function restrict_for( $disabled_for )
111 {
112 if ( !is_array( $disabled_for ) ) {
113 return false;
114 }
115 require_once ABSPATH . '/wp-includes/pluggable.php';
116 if ( !function_exists( 'wp_get_current_user' ) ) {
117 return false;
118 }
119 $current_user = wp_get_current_user();
120 $current_name = $current_user->display_name;
121 $current_roles = $current_user->roles;
122 $formattedroles = array();
123 foreach ( $disabled_for as $item ) {
124 $item = strtolower( $item );
125 $item = str_replace( ' ', '_', $item );
126 array_push( $formattedroles, $item );
127 }
128 if ( in_array( $current_name, $disabled_for ) ) {
129 return true;
130 }
131 foreach ( $current_roles as $role ) {
132 if ( in_array( $role, $formattedroles ) ) {
133 return true;
134 }
135 }
136 }
137
138 // Get Taxonomies
139 public static function get_taxonomies()
140 {
141 $args = array(
142 'public' => true,
143 'show_ui' => true,
144 );
145 $output = 'objects';
146 $taxonomies = get_taxonomies( $args, $output );
147 $taxonomies = $taxonomies;
148 return $taxonomies;
149 }
150
151 // Get Post Types
152 public static function get_post_types()
153 {
154 $args = array(
155 'public' => true,
156 'show_ui' => true,
157 );
158 $output = 'objects';
159 $post_types = get_post_types( $args, $output );
160 $post_types = $post_types;
161 return $post_types;
162 }
163
164 // Get Post Meta
165 public static function post_meta( $meta_key )
166 {
167 $meta_key = get_post_meta( get_the_ID(), $meta_key, true );
168 return $meta_key;
169 }
170
171 //// verfiy current page id
172 public static function jltwp_adminify_currentpage_id( $id )
173 {
174 if ( !function_exists( "get_current_screen" ) ) {
175 return true;
176 }
177 $screen = get_current_screen();
178 return is_object( $screen ) && $screen->id == $id;
179 }
180
181 /**
182 * Get Current Admin Page Title
183 *
184 * @param string $title
185 *
186 * @return void
187 */
188 public static function admin_page_title( $title = '' )
189 {
190 $title = ( isset( $title ) && !empty($title) ? $title : WP_ADMINIFY );
191 echo $title ;
192
193 if ( is_multisite() ) {
194 $text = ' | ' . esc_html__( 'Current Blog ID', 'adminify' ) . ': ' . get_current_blog_id();
195 ?>
196 <?php
197 echo self::admin_page_subtitle( $text ) ;
198 ?>
199 <?php
200 }
201
202 ?>
203 <?php
204 }
205
206 /**
207 * Get Current Admin Subtitle
208 */
209 public static function admin_page_subtitle( $text )
210 {
211 ?>
212
213 <span style="color:#8b959e;" <?php
214 if ( is_rtl() ) {
215 echo ' dir="rtl"' ;
216 }
217 ?>>
218 <?php
219 echo esc_html( $text ) ;
220 ?>
221 </span>
222
223 <?php
224 }
225
226 public static function convert_name_to_class( $name )
227 {
228 $class = str_replace( array(
229 ' ',
230 ',',
231 '.',
232 '"',
233 "'",
234 '/',
235 "\\",
236 '+',
237 '=',
238 ')',
239 '(',
240 '*',
241 '&',
242 '^',
243 '%',
244 '$',
245 '#',
246 '@',
247 '!',
248 '~',
249 '`',
250 '<',
251 '>',
252 '?',
253 '[',
254 ']',
255 '{',
256 '}',
257 '|',
258 ':'
259 ), '', $name );
260 return $class;
261 }
262
263 public static function jltwp_adminify_class_cleanup( $string )
264 {
265 //Lower case everything
266 $string = strtolower( $string );
267 //Make alphanumeric (removes all other characters)
268 $string = preg_replace( "/[^a-z0-9_\\s-]/", "", $string );
269 //Clean up multiple dashes or whitespaces
270 $string = preg_replace( "/[\\s-]+/", " ", $string );
271 //Convert whitespaces and underscore to dash
272 $string = preg_replace( "/[\\s_]/", "-", $string );
273 return $string;
274 }
275
276 public static function sanitize_id( $url )
277 {
278 $url = preg_replace( '/^customize.php\\?return=.*$/', 'customize', $url );
279 $url = preg_replace( '/(&|&amp;|&#038;)?_wpnonce=([^&]+)/', '', $url );
280 return str_replace( array(
281 '.php',
282 '.',
283 '/',
284 '?',
285 '='
286 ), array(
287 '',
288 '_',
289 '_',
290 '_',
291 '_'
292 ), $url );
293 }
294
295 /**
296 * Strip tags and it's content from the given string.
297 *
298 * @link https://stackoverflow.com/questions/14684077/remove-all-html-tags-from-php-string/#answer-39320168
299 *
300 * @param string $text The string being stripped.
301 * @return string The stripped string.
302 */
303 public static function strip_tags_content( $text )
304 {
305 $cleanup = preg_replace( '@<(\\w+)\\b.*?>.*?</\\1>@si', '', $text );
306 $cleanup = wp_strip_all_tags( $cleanup );
307 $cleanup = trim( $cleanup );
308 return $cleanup;
309 }
310
311 /**
312 * String to ID
313 * Remove Space replace with underscore and lowercase
314 *
315 * @param void
316 *
317 * @return string
318 */
319 public static function string_to_id( $string )
320 {
321 $string_replace = str_replace( " ", "_", $string );
322 $formatted_string = strtolower( $string_replace );
323 return $formatted_string;
324 }
325
326 /**
327 * ID to String
328 * Remove Space replace with underscore and lowercase
329 *
330 * @param void
331 *
332 * @return string
333 */
334 public static function id_to_string( $string )
335 {
336 $string_replace = str_replace( "_", " ", $string );
337 $formatted_string = ucwords( $string_replace );
338 return $formatted_string;
339 }
340
341 /**
342 * Check is Plugin Active
343 *
344 * @param [type] $plugin_basename
345 *
346 * @return boolean
347 */
348 public static function is_plugin_active( $plugin_basename )
349 {
350 include_once ABSPATH . 'wp-admin/includes/plugin.php';
351 return is_plugin_active( $plugin_basename );
352 }
353
354 /**
355 * User Defined Settings
356 */
357 public static function get_user_preference( $key )
358 {
359 $userid = get_current_user_id();
360 $current = get_user_meta( $userid, '_wpadminify_preferences', true );
361 $value = false;
362 if ( is_array( $current ) ) {
363 if ( isset( $current[$key] ) ) {
364 $value = $current[$key];
365 }
366 }
367 return $value;
368 }
369
370 /**
371 * Sanitises and strips tags of input from ajax
372 * @since 1.0.0
373 * @variables $values = item to clean (array or string)
374 */
375 public static function clean_ajax_input( $values )
376 {
377
378 if ( is_array( $values ) ) {
379 foreach ( $values as $index => $in ) {
380
381 if ( is_array( $in ) ) {
382 $values[$index] = self::clean_ajax_input( $in );
383 } else {
384 $values[$index] = strip_tags( $in );
385 }
386
387 }
388 } else {
389 $values = strip_tags( $values );
390 }
391
392 return $values;
393 }
394
395 /**
396 * Check Ajax Error Messages
397 *
398 * @param [type] $message
399 *
400 * @return void
401 */
402 public static function ajax_error_message( $message )
403 {
404 $returndata = array();
405 $returndata['error'] = true;
406 $returndata['error_message'] = $message;
407 return json_encode( $returndata );
408 }
409
410 /**
411 * Get All Updates
412 * Themes, Plugins, Core etc
413 *
414 * @return void
415 */
416 public static function get_all_updates()
417 {
418 $allupdates = [];
419 $allupdates['total'] = 0;
420 $allupdates['wordpress'] = 0;
421 $allupdates['theme'] = 0;
422 $allupdates['plugin'] = 0;
423 if ( !is_admin() ) {
424 return $allupdates;
425 }
426 if ( !current_user_can( 'install_plugins' ) ) {
427 return $allupdates;
428 }
429 $updatesTotal = 0;
430
431 if ( is_super_admin() && is_admin() ) {
432 $pluginUpdates = get_plugin_updates();
433 $themeUpdates = get_theme_updates();
434 $wpUpdates = get_core_updates();
435
436 if ( isset( $wpUpdates[0] ) ) {
437 $wpversion = $wpUpdates[0]->version;
438 global $wp_version ;
439
440 if ( $wpversion > $wp_version ) {
441 $wpUpdates = 1;
442 } else {
443 $wpUpdates = 0;
444 }
445
446 } else {
447 $wpUpdates = 0;
448 }
449
450 $updatesTotal = count( $pluginUpdates ) + count( $themeUpdates ) + $wpUpdates;
451 $allupdates['total'] = $updatesTotal;
452 $allupdates['wordpress'] = $wpUpdates;
453 $allupdates['theme'] = $themeUpdates;
454 $allupdates['plugin'] = $pluginUpdates;
455 }
456
457 return $allupdates;
458 }
459
460 public static function adminfiy_help_urls(
461 $module_name = '',
462 $docs = '',
463 $youtube = '',
464 $facebook_grp = '',
465 $support = ''
466 )
467 {
468 $help_content = '';
469 // Modules
470
471 if ( empty($module_name) ) {
472 $module_name = 'Module';
473 } else {
474 $module_name = $module_name;
475 }
476
477 // Docs
478
479 if ( empty($docs) ) {
480 $docs = 'https://wpadminify.com/kb';
481 } else {
482 $docs = $docs;
483 }
484
485 // youtube
486
487 if ( empty($youtube) ) {
488 $youtube = 'https://www.youtube.com/playlist?list=PLqpMw0NsHXV-EKj9Xm1DMGa6FGniHHly8';
489 } else {
490 $youtube = $youtube;
491 }
492
493 // facebook_grp
494
495 if ( empty($facebook_grp) ) {
496 $facebook_grp = 'https://www.facebook.com/groups/jeweltheme';
497 } else {
498 $facebook_grp = $facebook_grp;
499 }
500
501 // Support
502
503 if ( empty($support) ) {
504 $support = 'https://wpadminify.com/support/wp-adminify';
505 } else {
506 $support = $support;
507 }
508
509 $help_content = sprintf(
510 __( '%1$s <a class="adminify-docs-url" href="%2$s" target="_blank"> ' . Utils::docs_icon() . ' Docs</a>
511 <a class="adminify-video-url" href="%3$s" target="_blank">' . Utils::video_tutorials_icon() . ' Video Tutorial</a> <a class="adminify-fbgroup-url" href="%4$s" target="_blank">' . Utils::fbgroup_icon() . ' Facebook Group</a> <a class="adminify-support-url" href="%5$s" target="_blank">' . Utils::support_icon() . ' Support</a>', 'adminify' ),
512 $module_name,
513 $docs,
514 $youtube,
515 $facebook_grp,
516 $support
517 );
518 return $help_content;
519 }
520
521 // Upgrade to Pro Notice
522 public static function adminify_upgrade_pro( $custom_message = '' )
523 {
524 $pro_content = '';
525 $pro_message = '';
526
527 if ( empty($custom_message) ) {
528 $pro_message = 'Get <strong>Pro Version</strong> to Unlock this feature.';
529 } else {
530 $pro_content = $custom_message;
531 }
532
533 if ( !empty($custom_message) ) {
534 $pro_message = $custom_message;
535 }
536 $jltwp_pro_notice = sprintf( __( '%s <a href="https://wpadminify.com/pricing" target="_blank">Upgrade to Pro Now!</a>', 'adminify' ), $pro_message );
537 $pro_content = '<div class="adminify-pro-notice">
538 <svg class="adminify-pro-notice-icon is-pulled-left mr-2" width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
539 <path fill-rule="evenodd" clip-rule="evenodd" d="M21.8233 0.18318C21.8541 0.215042 21.8753 0.255055 21.8843 0.298527C22.5767 3.32046 20.085 9.8239 16.4731 13.4209C15.8343 14.064 15.1407 14.6502 14.4002 15.1727C14.4955 16.2787 14.411 17.3846 13.9985 18.3318C12.8302 21.0043 9.75855 21.7824 8.44197 21.9937C8.36979 22.0059 8.29577 22.0012 8.22571 21.9799C8.15566 21.9587 8.09147 21.9215 8.03819 21.8713C7.9849 21.821 7.94397 21.7591 7.9186 21.6904C7.89323 21.6217 7.88411 21.548 7.89196 21.4751L8.36241 17.189C8.04096 17.1858 7.71987 17.1663 7.40039 17.1305C7.17735 17.1087 6.96893 17.0096 6.81109 16.8503L5.15076 15.1924C4.99146 15.0346 4.89242 14.8259 4.87084 14.6026C4.83497 14.281 4.81547 13.9578 4.8124 13.6343L0.524795 14.1076C0.451994 14.1156 0.378341 14.1065 0.309629 14.0811C0.240917 14.0558 0.17902 14.0148 0.128806 13.9615C0.0785915 13.9081 0.0414297 13.8438 0.0202432 13.7736C-0.000943262 13.7035 -0.0055768 13.6293 0.00670721 13.5571C0.223273 12.2368 1.00065 9.16771 3.67065 7.99148C4.61695 7.57859 5.72728 7.4965 6.83761 7.59481C7.35968 6.85546 7.94513 6.16306 8.58733 5.52547C12.1879 1.92304 18.8337 -0.585245 21.7099 0.118627C21.7531 0.128924 21.7924 0.151317 21.8233 0.18318ZM12.224 7.92186C12.3151 8.37957 12.5397 8.79996 12.8695 9.12986C13.0882 9.34908 13.348 9.52298 13.6339 9.64164C13.9198 9.7603 14.2263 9.82137 14.5358 9.82137C14.8453 9.82137 15.1517 9.7603 15.4377 9.64164C15.7236 9.52298 15.9833 9.34908 16.202 9.12986C16.5318 8.79996 16.7565 8.37957 16.8475 7.92186C16.9386 7.46415 16.892 6.98968 16.7137 6.55848C16.5353 6.12727 16.2332 5.7587 15.8455 5.49939C15.4578 5.24007 15.002 5.10166 14.5358 5.10166C14.0695 5.10166 13.6137 5.24007 13.226 5.49939C12.8384 5.7587 12.5362 6.12727 12.3579 6.55848C12.1795 6.98968 12.1329 7.46415 12.224 7.92186ZM5.47798 18.5161C5.99754 18.4262 6.4292 18.321 6.69831 18.0511C6.83974 17.9032 7.0897 18.0256 7.07153 18.2311C6.99299 18.8853 6.69667 19.4941 6.23032 19.9593C5.07579 21.1158 0.785726 21.225 0.785726 21.225C0.785726 21.225 0.894746 16.9334 2.04927 15.7768C2.51439 15.3115 3.12167 15.0153 3.77443 14.9353C3.81912 14.9292 3.86459 14.9374 3.90439 14.9586C3.94419 14.9799 3.97629 15.0131 3.99613 15.0537C4.01597 15.0942 4.02255 15.14 4.01493 15.1845C4.00731 15.229 3.98588 15.2699 3.95368 15.3015C3.80635 15.449 3.56965 16.0767 3.48961 16.5245C3.27991 17.7056 4.31069 18.7152 5.47798 18.5161Z" fill="#00BA88"/>
540 </svg>
541 <p> ' . $jltwp_pro_notice . '</p>
542 </div>';
543 return $pro_content;
544 }
545
546 /**
547 * Documentation SVG Icon
548 */
549 public static function docs_icon()
550 {
551 return '<svg class="is-pulled-left mr-1 width="9" height="12" viewBox="0 0 9 12" fill="none" xmlns="http://www.w3.org/2000/svg">
552 <path d="M5.25 3.1875V0H0.5625C0.250781 0 0 0.250781 0 0.5625V11.4375C0 11.7492 0.250781 12 0.5625 12H8.4375C8.74922 12 9 11.7492 9 11.4375V3.75H5.8125C5.50313 3.75 5.25 3.49687 5.25 3.1875ZM6.75 8.71875C6.75 8.87344 6.62344 9 6.46875 9H2.53125C2.37656 9 2.25 8.87344 2.25 8.71875V8.53125C2.25 8.37656 2.37656 8.25 2.53125 8.25H6.46875C6.62344 8.25 6.75 8.37656 6.75 8.53125V8.71875ZM6.75 7.21875C6.75 7.37344 6.62344 7.5 6.46875 7.5H2.53125C2.37656 7.5 2.25 7.37344 2.25 7.21875V7.03125C2.25 6.87656 2.37656 6.75 2.53125 6.75H6.46875C6.62344 6.75 6.75 6.87656 6.75 7.03125V7.21875ZM6.75 5.53125V5.71875C6.75 5.87344 6.62344 6 6.46875 6H2.53125C2.37656 6 2.25 5.87344 2.25 5.71875V5.53125C2.25 5.37656 2.37656 5.25 2.53125 5.25H6.46875C6.62344 5.25 6.75 5.37656 6.75 5.53125ZM9 2.85703V3H6V0H6.14297C6.29297 0 6.43594 0.0585938 6.54141 0.164062L8.83594 2.46094C8.94141 2.56641 9 2.70938 9 2.85703Z" fill="#0347FF"/>
553 </svg>';
554 }
555
556 /**
557 * Video Tutorials SVG Icon
558 */
559 public static function video_tutorials_icon()
560 {
561 return '<svg class="is-pulled-left mr-1 width="8" height="10" viewBox="0 0 8 10" fill="none" xmlns="http://www.w3.org/2000/svg">
562 <path d="M7.5 4.13399C8.16667 4.51889 8.16667 5.48114 7.5 5.86604L1.5 9.33014C0.833334 9.71504 0 9.23392 0 8.46412V1.53592C0 0.766115 0.833333 0.28499 1.5 0.66989L7.5 4.13399Z" fill="#C30052"/>
563 </svg>';
564 }
565
566 /**
567 * Facebook Group SVG Icon
568 */
569 public static function fbgroup_icon()
570 {
571 return '<svg class="is-pulled-left mr-1 width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg">
572 <path d="M1.82594 0C0.814448 0 0 0.814448 0 1.82594V8.17405C0 9.18554 0.814448 9.99999 1.82594 9.99999H5.26656V6.09062H4.23281V4.68312H5.26656V3.48062C5.26656 2.53587 5.87735 1.66844 7.28437 1.66844C7.85404 1.66844 8.2753 1.72313 8.2753 1.72313L8.24217 3.0375C8.24217 3.0375 7.81254 3.03344 7.34374 3.03344C6.83635 3.03344 6.75499 3.26722 6.75499 3.65532V4.68313H8.28248L8.21592 6.09063H6.75499V10H8.17404C9.18553 10 9.99998 9.18555 9.99998 8.17406V1.82595C9.99998 0.814458 9.18553 9.99998e-06 8.17404 9.99998e-06H1.82593L1.82594 0Z" fill="#3B5998"/>
573 </svg>';
574 }
575
576 /**
577 * Support SVG Icon
578 */
579 public static function support_icon()
580 {
581 return '<svg class="is-pulled-left mr-1 width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg">
582 <path fill-rule="evenodd" clip-rule="evenodd" d="M10 5C10 6.32608 9.47322 7.59785 8.53553 8.53553C7.59785 9.47322 6.32608 10 5 10C3.67392 10 2.40215 9.47322 1.46447 8.53553C0.526784 7.59785 0 6.32608 0 5C0 3.67392 0.526784 2.40215 1.46447 1.46447C2.40215 0.526784 3.67392 0 5 0C6.32608 0 7.59785 0.526784 8.53553 1.46447C9.47322 2.40215 10 3.67392 10 5ZM8.75 5C8.75 5.62063 8.59937 6.20563 8.3325 6.72125L7.38 5.76813C7.52262 5.32668 7.5395 4.85425 7.42875 4.40375L8.405 3.4275C8.62625 3.90563 8.75 4.4375 8.75 5ZM5.52187 7.44563L6.50938 8.43312C6.03375 8.64254 5.51968 8.75046 5 8.75C4.45699 8.75068 3.92036 8.63294 3.4275 8.405L4.40375 7.42875C4.77042 7.5186 5.15266 7.52437 5.52187 7.44563ZM2.59875 5.69812C2.47576 5.27463 2.46692 4.82614 2.57313 4.39812L2.52313 4.44812L1.56687 3.49C1.35738 3.96582 1.24945 4.48011 1.25 5C1.25 5.59625 1.38937 6.16 1.63687 6.66062L2.59938 5.69812H2.59875ZM3.27875 1.66687C3.81076 1.39189 4.40112 1.24891 5 1.25C5.59625 1.25 6.16 1.38937 6.66062 1.63687L5.69812 2.59938C5.21829 2.45961 4.70759 2.46679 4.23187 2.62L3.27875 1.6675V1.66687ZM6.25 5C6.25 5.33152 6.1183 5.64946 5.88388 5.88388C5.64946 6.1183 5.33152 6.25 5 6.25C4.66848 6.25 4.35054 6.1183 4.11612 5.88388C3.8817 5.64946 3.75 5.33152 3.75 5C3.75 4.66848 3.8817 4.35054 4.11612 4.11612C4.35054 3.8817 4.66848 3.75 5 3.75C5.33152 3.75 5.64946 3.8817 5.88388 4.11612C6.1183 4.35054 6.25 4.66848 6.25 5Z" fill="#4E4B66"/>
583 </svg>';
584 }
585
586 /* White Label Upgrade Pro */
587 public static function jltwp_adminify_white_label_upgrade()
588 {
589 ?>
590 <div class="wp-adminify-white-label-notice-content">
591 <div class="wp-adminify-white-label-notice-logo">
592 <img src="<?php
593 echo WP_ADMINIFY_ASSETS_IMAGE . 'logos/logo-text-light.svg' ;
594 ?>" alt="<?php
595 echo WP_ADMINIFY ;
596 ?>">
597 </div>
598 <h2>
599 <?php
600 _e( 'Upgrade <span>Pro</span> for White Labeling', 'adminify' );
601 ?>
602 </h2>
603 <p>
604 <?php
605 echo sprintf( __( '<strong>%1$s</strong> can be completely re-branded with your own brand Logo, Name and Author Details. Your clients will never know what tools you are using to build their website and will think that this is your own tool set. White-labeling works as long as your license is active. ', 'adminify' ), WP_ADMINIFY ) ;
606 _e( '', 'adminify' );
607 ?><br>
608 <em><?php
609 _e( 'Note: Agency or Higher Plans Only', 'adminify' );
610 ?></em>
611 </p>
612 <a class="wp-adminify-btn wp-adminify-get-pro" href="<?php
613 echo esc_url( 'https://wpadminify.com/pricing/' ) ;
614 ?>" target="_blank"><?php
615 _e( 'Upgrade Now', 'adminify' );
616 ?></a>
617 </div>
618 <?php
619 }
620
621 public static function get_widget_template_options()
622 {
623 $type = 'widget';
624 $page_templates = self::jltwp_adminify_get_page_templates( $type );
625 $options[-1] = __( 'Select', 'adminify' );
626
627 if ( count( $page_templates ) ) {
628 foreach ( $page_templates as $id => $name ) {
629 $options[$id] = $name;
630 }
631 } else {
632 $options['no_template'] = __( 'No saved templates found!', 'adminify' );
633 }
634
635 return $options;
636 }
637
638 public static function get_section_template_options()
639 {
640 $type = 'section';
641 $page_templates = self::jltwp_adminify_get_page_templates( $type );
642 $options[-1] = __( 'Select', 'adminify' );
643
644 if ( count( $page_templates ) ) {
645 foreach ( $page_templates as $id => $name ) {
646 $options[$id] = $name;
647 }
648 } else {
649 $options['no_template'] = __( 'No saved templates found!', 'adminify' );
650 }
651
652 return $options;
653 }
654
655 public static function get_page_template_options()
656 {
657 $type = 'page';
658 $page_templates = self::jltwp_adminify_get_page_templates( $type );
659 $options[-1] = __( 'Select', 'adminify' );
660
661 if ( count( $page_templates ) ) {
662 foreach ( $page_templates as $id => $name ) {
663 $options[$id] = $name;
664 }
665 } else {
666 $options['no_template'] = __( 'No saved templates found!', 'adminify' );
667 }
668
669 return $options;
670 }
671
672 public static function get_theme_presets( $theme = null )
673 {
674 $presets = [
675 'preset1' => [
676 '--adminify-preset-background' => '#F9F9F9',
677 '--adminify-menu-bg' => '#ffffff',
678 '--adminify-menu-text-color' => 'rgba(78, 75, 102, 0.72)',
679 '--adminify-admin-bar-bg' => 'var(--adminify-menu-bg)',
680 '--adminify-admin-bar-icon' => '#14142B',
681 '--adminify-admin-bar-input-bg' => '#F1F1F3',
682 '--adminify-admin-bar-input-text' => '#14142B',
683 '--adminify-admin-bar-icon-brightness' => '1',
684 '--adminify-notif-bg-color' => '#FF1C69',
685 '--adminify-text-color' => '#ffffff',
686 '--adminify-btn-bg' => '#0347FF',
687 '--adminify-admin-bar-icon-filter' => '0.5',
688 ],
689 'preset2' => [
690 '--adminify-preset-background' => '#F9F9F9',
691 '--adminify-menu-bg' => '#14142B',
692 '--adminify-menu-text-color' => '#ffffff',
693 '--adminify-admin-bar-bg' => 'var(--adminify-menu-bg)',
694 '--adminify-admin-bar-icon' => '#ffffff',
695 '--adminify-admin-bar-input-bg' => '#2b2a3f',
696 '--adminify-admin-bar-input-text' => '#9391A0',
697 '--adminify-admin-bar-icon-brightness' => '11',
698 '--adminify-notif-bg-color' => '#FF1C69',
699 '--adminify-text-color' => '#ffffff',
700 '--adminify-btn-bg' => '#0347FF',
701 '--adminify-admin-bar-icon-filter' => '1',
702 ],
703 ];
704 // return all presets
705 if ( is_null( $theme ) ) {
706 return $presets;
707 }
708 // return specific preset
709 if ( array_key_exists( $theme, $presets ) ) {
710 return $presets[$theme];
711 }
712 // specific preset not found
713 return [];
714 }
715
716 public static function jltwp_adminify_get_page_templates( $type = '' )
717 {
718 $args = [
719 'post_type' => 'elementor_library',
720 'posts_per_page' => -1,
721 ];
722 if ( $type ) {
723 $args['tax_query'] = [ [
724 'taxonomy' => 'elementor_library_type',
725 'field' => 'slug',
726 'terms' => $type,
727 ] ];
728 }
729 $page_templates = get_posts( $args );
730 $options = array();
731 if ( !empty($page_templates) && !is_wp_error( $page_templates ) ) {
732 foreach ( $page_templates as $post ) {
733 $options[$post->ID] = $post->post_title;
734 }
735 }
736 return $options;
737 }
738
739 public static function assets_ext( $ext )
740 {
741 if ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) {
742 return $ext;
743 }
744 return '.min' . $ext;
745 }
746
747 }