PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 3.2.4.1
Adminify – White Label, Admin Menu Editor, Login Customizer v3.2.4.1
4.3.2 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 All 165 releases
← All changes | Inc/Classes/Assets.php +368 -374 4.1.17 → 3.2.4.1 View file →
@@ -1,164 +1,51 @@
1 1 <?php
2 2
3 3 namespace WPAdminify\Inc\Classes;
4 4
5 -use WPAdminify\Inc\Utils;
6 -use WPAdminify\Inc\Admin\AdminSettings;
7 -use WPAdminify\Inc\Admin\AdminSettingsModel;
8 -use WPAdminify\Inc\Classes\Addons_Plugins;
9 -
10 -
11 -
5 +use WPAdminify\Inc\Utils ;
6 +use WPAdminify\Inc\Admin\AdminSettings ;
7 +use WPAdminify\Inc\Admin\AdminSettingsModel ;
12 8 // no direct access allowed
13 -if (!defined('ABSPATH')) {
14 - exit;
9 +if ( !defined( 'ABSPATH' ) ) {
10 + exit;
15 11 }
16 -
17 12 class Assets extends AdminSettingsModel
18 13 {
14 + public $classic_editor = true ;
15 + public $block_editor = true ;
16 + public function __construct()
17 + {
18 + $this->options = (array) AdminSettings::get_instance()->get();
19 + add_action( 'admin_enqueue_scripts', array( $this, 'jltwp_adminify_admin_scripts' ), 100 );
20 + add_action( 'wp_enqueue_scripts', array( $this, 'jltwp_adminify_enqueue_scripts' ), 100 );
21 + if ( $this->is_dark_mode() || $this->classic_editor || $this->block_editor ) {
22 + add_action( 'admin_head', array( $this, 'header_scripts' ) );
23 + }
24 + }
25 +
26 + /**
27 + * Function is_dark_mode()
28 + *
29 + * @return DateTimeZone
30 + */
31 + public function is_dark_mode()
32 + {
33 +
34 + if ( !empty($this->options['admin_bar_mode']) && $this->options['admin_bar_mode'] == 'dark' ) {
35 + $adminify_dark_mode = true;
36 + } else {
37 + $adminify_dark_mode = false;
38 + }
39 +
40 + return $adminify_dark_mode;
41 + }
42 +
43 + public function header_scripts()
44 + {
45 + if ( !empty($this->dark_mode) && $this->dark_mode == 'dark' ) {
46 + ?>
19 47
20 - public $classic_editor = true;
21 - public $block_editor = true;
22 - public $dark_mode = true;
23 -
24 - public function __construct()
25 - {
26 - $this->options = (array) AdminSettings::get_instance()->get();
27 - $global_dark_mode = !empty($this->options['light_dark_mode']['admin_ui_mode']) ? $this->options['light_dark_mode']['admin_ui_mode'] : 'light';
28 - $this->dark_mode = empty(get_user_meta(get_current_user_id(), 'color_mode', true)) ? $global_dark_mode : get_user_meta(get_current_user_id(), 'color_mode', true);
29 - add_action('admin_enqueue_scripts', array($this, 'jltwp_adminify_admin_scripts'), 100);
30 - add_action('wp_ajax_jltwp_adminify_addons_install_active', 'jltwp_adminify_addons_install_active');
31 -
32 - if ($this->is_dark_mode() || $this->classic_editor || $this->block_editor) {
33 - add_action('admin_head', array($this, 'header_scripts'));
34 - }
35 - }
36 -
37 -
38 - /**
39 - * Function: Ajax Call for Install and Activate WP Adminify Plugin
40 - */
41 - function jltwp_adminify_addons_install_active()
42 - {
43 -
44 - // Include necessary WordPress files
45 - require_once ABSPATH . 'wp-admin/includes/plugin-install.php';
46 - require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
47 - require_once ABSPATH . 'wp-admin/includes/class-wp-ajax-upgrader-skin.php';
48 - require_once ABSPATH . 'wp-admin/includes/class-plugin-upgrader.php';
49 -
50 - if (isset($_POST['plugin'])) {
51 -
52 - $nonce = isset($_POST['nonce']) ? sanitize_text_field(wp_unslash($_POST['nonce'])) : '';
53 -
54 - if (!wp_verify_nonce($nonce, 'jltwp_adminify_addons_nonce')) {
55 - wp_send_json_error(array('mess' => esc_html__('Nonce is invalid', 'adminify')));
56 - }
57 -
58 - if ((is_multisite() && is_network_admin()) || !current_user_can('install_plugins')) {
59 - wp_send_json_error(array('mess' => esc_html__('Invalid Access', 'adminify')));
60 - }
61 -
62 - $plugin = sanitize_text_field(wp_unslash($_POST['plugin']));
63 -
64 - if (empty($plugin)) {
65 - wp_send_json_error(array('mess' => esc_html__('Invalid plugin', 'adminify')));
66 - }
67 -
68 - // Validate the requested plugin against the trusted addons list
69 - // and replace the user-supplied value with the canonical
70 - // download URL from that list before passing it to the upgrader.
71 - $addons = new Addons_Plugins();
72 - $plugins_list = (array) $addons->get_adminify_plugins_lists();
73 - $requested_slug = '';
74 - $trusted_source = '';
75 - foreach ( $plugins_list as $slug => $entry ) {
76 - if ( ! empty( $entry['download_link'] ) && $entry['download_link'] === $plugin ) {
77 - $requested_slug = $slug;
78 - $trusted_source = $entry['download_link'];
79 - break;
80 - }
81 - if ( $slug === $plugin ) {
82 - $requested_slug = $slug;
83 - $trusted_source = ! empty( $entry['download_link'] ) ? $entry['download_link'] : '';
84 - break;
85 - }
86 - }
87 - if ( empty( $requested_slug ) || empty( $trusted_source ) ) {
88 - wp_send_json_error( array( 'mess' => esc_html__( 'Invalid plugin', 'adminify' ) ) );
89 - }
90 -
91 - $type = isset($_POST['type']) ? sanitize_text_field(wp_unslash($_POST['type'])) : 'install';
92 - $skin = new \WP_Ajax_Upgrader_Skin();
93 - $upgrader = new \Plugin_Upgrader($skin);
94 -
95 - if ('install' === $type) {
96 - $result = $upgrader->install( $trusted_source );
97 - if (is_wp_error($result)) {
98 - wp_send_json_error(
99 - array(
100 - 'mess' => $result->get_error_message(),
101 - )
102 - );
103 - }
104 - $args = array(
105 - 'slug' => $upgrader->result['destination_name'],
106 - 'fields' => array(
107 - 'short_description' => true,
108 - 'icons' => true,
109 - 'banners' => false,
110 - 'added' => false,
111 - 'reviews' => false,
112 - 'sections' => false,
113 - 'requires' => false,
114 - 'rating' => false,
115 - 'ratings' => false,
116 - 'downloaded' => false,
117 - 'last_updated' => false,
118 - 'added' => false,
119 - 'tags' => false,
120 - 'compatibility' => false,
121 - 'homepage' => false,
122 - 'donate_link' => false,
123 - ),
124 - );
125 - $plugin_data = plugins_api('plugin_information', $args);
126 -
127 - if ($plugin_data && !is_wp_error($plugin_data)) {
128 - $install_status = \install_plugin_install_status($plugin_data);
129 - activate_plugin($install_status['file']);
130 - }
131 - wp_die(); // die();
132 - }
133 - }
134 - }
135 -
136 -
137 - /*
138 - * Function is_dark_mode()
139 - *
140 - */
141 - public function is_dark_mode()
142 - {
143 -
144 - if (!empty($this->dark_mode) && $this->dark_mode == 'dark') {
145 - $adminify_dark_mode = true;
146 - } else {
147 - $adminify_dark_mode = false;
148 - }
149 - return $adminify_dark_mode;
150 - }
151 -
152 - public function header_scripts()
153 - {
154 - // Skip on excluded pages
155 - if ( $this->should_skip_adminify_scripts() ) {
156 - return;
157 - }
158 -
159 - if (!empty($this->dark_mode) && $this->dark_mode == 'dark') { ?>
160 -
161 48 <script>
162 49 window.AdminifyDarkMode.enable({
163 50 brightness: 120
164 51 })
@@ -168,231 +55,338 @@
168 55 brightness: 120
169 56 })
170 57 });
171 58 </script>
172 - <?php }
173 59
174 - if (!empty($this->dark_mode) && $this->dark_mode == 'system') { ?>
175 - <script>
176 - const isDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
177 - if(!!isDark) {
178 - window.AdminifyDarkMode.enable({
179 - brightness: 120
180 - })
60 + <style>
61 + .wp-adminify.adminify-dark-mode .logo-light {
62 + display: none;
63 + }
181 64
182 - addEventListener("load", (event) => {
183 - window.AdminifyDarkMode.enable({
184 - brightness: 120
185 - })
186 - });
187 - } else {
188 - window.AdminifyDarkMode.disable()
189 -
190 - addEventListener("load", (event) => {
191 - window.AdminifyDarkMode.disable()
192 - });
65 + .wp-adminify.adminify-dark-mode .logo-dark {
66 + display: block !important;
193 67 }
68 + </style>
69 + <?php
70 + }
71 + }
72 +
73 + // Google Fonts
74 + function jltwp_adminify_google_fonts_url()
75 + {
76 + $font_url = '';
77 + $font_family = ( !empty($this->options['admin_general_google_font']['font-family']) ? $this->options['admin_general_google_font']['font-family'] : 'Nunito Sans:300,400,600,700,800' );
78 + if ( 'off' !== _x( 'on', 'Google font: on or off', 'adminify' ) ) {
79 + $font_url = add_query_arg( 'family', urlencode( $font_family ), '//fonts.googleapis.com/css' );
80 + }
81 + return $font_url;
82 + }
83 +
84 + public function jltwp_adminify_admin_scripts()
85 + {
86 + $screen = get_current_screen();
87 + // Register Styles
88 + wp_register_style(
89 + 'wp-adminify-admin',
90 + WP_ADMINIFY_ASSETS . 'css/wp-adminify.min.css',
91 + false,
92 + WP_ADMINIFY_VER
93 + );
94 + wp_register_style(
95 + 'wp-adminify-default-ui',
96 + WP_ADMINIFY_ASSETS . 'css/wp-adminify-default-ui.min.css',
97 + false,
98 + WP_ADMINIFY_VER
99 + );
100 + wp_register_style(
101 + 'wp-adminify-admin-bar',
102 + WP_ADMINIFY_ASSETS . 'css/admin-bar' . Utils::assets_ext( '.css' ),
103 + false,
104 + WP_ADMINIFY_VER
105 + );
106 + wp_register_style(
107 + 'wp-adminify-menu-editor',
108 + WP_ADMINIFY_ASSETS . 'css/adminify-menu-editor' . Utils::assets_ext( '.css' ),
109 + false,
110 + WP_ADMINIFY_VER
111 + );
112 + wp_register_style(
113 + 'wp-adminify-dark-mode',
114 + WP_ADMINIFY_ASSETS . 'css/dark-mode' . Utils::assets_ext( '.css' ),
115 + false,
116 + WP_ADMINIFY_VER
117 + );
118 + wp_register_style(
119 + 'wp-adminify-rtl',
120 + WP_ADMINIFY_ASSETS . 'css/adminify-rtl' . Utils::assets_ext( '.css' ),
121 + false,
122 + WP_ADMINIFY_VER
123 + );
124 + wp_register_style(
125 + 'wp-adminify-responsive',
126 + WP_ADMINIFY_ASSETS . 'css/adminify-responsive' . Utils::assets_ext( '.css' ),
127 + false,
128 + WP_ADMINIFY_VER
129 + );
130 + wp_register_style(
131 + 'wp-adminify-tokenize2',
132 + WP_ADMINIFY_ASSETS . 'vendors/tokenize/tokenize2' . Utils::assets_ext( '.css' ),
133 + false,
134 + WP_ADMINIFY_VER
135 + );
136 + wp_register_style(
137 + 'wp-adminify-animate',
138 + WP_ADMINIFY_ASSETS . 'vendors/animatecss/animate' . Utils::assets_ext( '.css' ),
139 + false,
140 + WP_ADMINIFY_VER
141 + );
142 + // Register Fonts Styles
143 + wp_register_style(
144 + 'wp-adminify-simple-line-icons',
145 + WP_ADMINIFY_ASSETS . 'fonts/simple-line-icons/css/simple-line-icons' . Utils::assets_ext( '.css' ),
146 + false,
147 + WP_ADMINIFY_VER
148 + );
149 + wp_register_style(
150 + 'wp-adminify-icomoon',
151 + WP_ADMINIFY_ASSETS . 'fonts/icomoon/style' . Utils::assets_ext( '.css' ),
152 + false,
153 + WP_ADMINIFY_VER
154 + );
155 + wp_register_style(
156 + 'wp-adminify-themify-icons',
157 + WP_ADMINIFY_ASSETS . 'fonts/themify-icons/themify-icons' . Utils::assets_ext( '.css' ),
158 + false,
159 + WP_ADMINIFY_VER
160 + );
161 + // Register Scripts
162 + wp_register_script(
163 + 'wp-adminify-circle-menu',
164 + WP_ADMINIFY_ASSETS . 'vendors/circle-menu/jQuery.circleMenu.js',
165 + array( 'jquery' ),
166 + WP_ADMINIFY_VER,
167 + false
168 + );
169 + wp_register_script(
170 + 'wp-adminify-tokenize2',
171 + WP_ADMINIFY_ASSETS . 'vendors/tokenize/tokenize2.min.js',
172 + array( 'jquery' ),
173 + WP_ADMINIFY_VER,
174 + false
175 + );
176 + wp_register_script(
177 + 'wp-adminify-admin',
178 + WP_ADMINIFY_ASSETS . 'js/wp-adminify.js',
179 + array( 'jquery' ),
180 + WP_ADMINIFY_VER,
181 + true
182 + );
183 + wp_register_script(
184 + 'wp-adminify-menu-editor',
185 + WP_ADMINIFY_ASSETS . 'js/wp-adminify-menu-editor.js',
186 + array( 'jquery', 'jquery-ui-sortable', 'wp-adminify-icon-picker' ),
187 + WP_ADMINIFY_VER,
188 + true
189 + );
190 + wp_register_script(
191 + 'wp-adminify-realtime-server',
192 + WP_ADMINIFY_ASSETS . 'js/adminify-realtime-server.js',
193 + array( 'jquery' ),
194 + WP_ADMINIFY_VER,
195 + true
196 + );
197 + // Login Customizer Control
198 + wp_register_script(
199 + 'wp-adminify-login-customizer-controls',
200 + WP_ADMINIFY_ASSETS . 'css/controls' . Utils::assets_ext( '.css' ),
201 + null,
202 + WP_ADMINIFY_VER
203 + );
204 + // Adminify Icon Picker
205 + wp_register_style(
206 + 'wp-adminify-icon-picker',
207 + WP_ADMINIFY_ASSETS . 'vendors/adminify-icon-picker/css/style' . Utils::assets_ext( '.css' ),
208 + false,
209 + WP_ADMINIFY_VER
210 + );
211 + wp_register_script(
212 + 'wp-adminify-icon-picker',
213 + WP_ADMINIFY_ASSETS . 'vendors/adminify-icon-picker/js/adminify-icon-picker.js',
214 + array( 'jquery' ),
215 + WP_ADMINIFY_VER,
216 + true
217 + );
218 + // Vendor
219 + wp_register_script(
220 + 'wp-adminify-vue-manifest',
221 + WP_ADMINIFY_ASSETS . 'admin/js/manifest.js',
222 + array(),
223 + WP_ADMINIFY_VER,
224 + true
225 + );
226 + wp_register_script(
227 + 'wp-adminify-vue-vendors',
228 + WP_ADMINIFY_ASSETS . 'admin/js/vendor' . Utils::assets_ext( '.js' ),
229 + array( 'wp-adminify-vue-manifest' ),
230 + WP_ADMINIFY_VER,
231 + true
232 + );
233 + // Adminify Admin Columns
234 + wp_enqueue_style(
235 + 'wp-adminify-admin-columns',
236 + WP_ADMINIFY_ASSETS . 'admin/css/wp-adminify--admin-columns' . Utils::assets_ext( '.css' ),
237 + array( 'wp-adminify-themify-icons' ),
238 + WP_ADMINIFY_VER
239 + );
240 + wp_register_script(
241 + 'wp-adminify-admin-columns',
242 + WP_ADMINIFY_ASSETS . 'admin/js/wp-adminify--admin-columns' . Utils::assets_ext( '.js' ),
243 + array( 'jquery', 'wp-adminify-vue-vendors' ),
244 + WP_ADMINIFY_VER,
245 + true
246 + );
247 + // Adminify Page Speed
248 + wp_register_script(
249 + 'wp-adminify--page-speed',
250 + WP_ADMINIFY_ASSETS . 'admin/js/wp-adminify--page-speed' . Utils::assets_ext( '.js' ),
251 + array( 'jquery', 'wp-adminify-vue-vendors' ),
252 + WP_ADMINIFY_VER,
253 + true
254 + );
255 + // Adminify Folder
256 + wp_register_script(
257 + 'wp-adminify--folder',
258 + WP_ADMINIFY_ASSETS . 'admin/js/wp-adminify--folder' . Utils::assets_ext( '.js' ),
259 + array(
260 + 'jquery',
261 + 'jquery-ui-droppable',
262 + 'jquery-ui-draggable',
263 + 'wp-adminify-vue-vendors'
264 + ),
265 + WP_ADMINIFY_VER,
266 + true
267 + );
268 + // Dark Mode
269 + wp_register_script(
270 + 'wp-adminify--dark-mode',
271 + WP_ADMINIFY_ASSETS . 'admin/js/wp-adminify-dark-mode.js',
272 + array(),
273 + WP_ADMINIFY_VER,
274 + false
275 + );
276 + // Styles Enqueue
277 + if ( empty($this->options['admin_general_google_font']['font-family']) ) {
278 + wp_enqueue_style( 'wp-adminify-google-fonts', $this->jltwp_adminify_google_fonts_url() );
279 + }
280 +
281 + if ( !empty($this->options['admin_ui']) ) {
282 + wp_enqueue_style( 'wp-adminify-animate' );
283 + wp_enqueue_style( 'wp-adminify-admin' );
284 + // wp_enqueue_style('wp-adminify-admin-bar');
285 + wp_enqueue_style( 'wp-adminify-responsive' );
286 + } else {
287 + wp_enqueue_style( 'wp-adminify-default-ui' );
288 + }
289 +
290 + // Dark Mode Style
291 + // wp_enqueue_style('wp-adminify-dark-mode');
292 + wp_enqueue_script( 'wp-adminify--dark-mode' );
293 + if ( is_rtl() ) {
294 + wp_enqueue_style( 'wp-adminify-rtl' );
295 + }
296 + // Scripts Enqueue
297 + wp_enqueue_script( 'wp-adminify-admin' );
298 + if ( !wp_script_is( 'adminify-fa', 'enqueued' ) || !wp_script_is( 'adminify-fa5', 'enqueued' ) ) {
299 +
300 + if ( apply_filters( 'adminify_fa4', false ) ) {
301 + wp_enqueue_style(
302 + 'adminify-fa',
303 + 'https://cdn.jsdelivr.net/npm/[email protected]/css/font-awesome' . Utils::assets_ext( '.css' ),
304 + array(),
305 + '4.7.0',
306 + 'all'
307 + );
308 + } else {
309 + wp_enqueue_style(
310 + 'adminify-fa5',
311 + 'https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/css/all' . Utils::assets_ext( '.css' ),
312 + array(),
313 + '5.15.5',
314 + 'all'
315 + );
316 + wp_enqueue_style(
317 + 'adminify-fa5-v4-shims',
318 + 'https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/css/v4-shims' . Utils::assets_ext( '.css' ),
319 + array(),
320 + '5.15.5',
321 + 'all'
322 + );
323 + }
324 +
325 + }
326 + // Load Scripts/Styles only WP Adminify Admin Page
327 + if ( $screen->id == 'toplevel_page_wp-adminify-settings' ) {
328 + // Admin Notice Dismiss
329 + $this->jltwp_adminify_admin_script();
330 + }
331 + // JS Files .
332 + wp_enqueue_script(
333 + 'wp-adminify-admin-common',
334 + WP_ADMINIFY_ASSETS . 'js/wp-adminify-admin.js',
335 + array( 'jquery' ),
336 + WP_ADMINIFY_VER,
337 + true
338 + );
339 + wp_localize_script( 'wp-adminify-admin-common', 'WP_ADMINIFYCORE', array(
340 + 'admin_ajax' => admin_url( 'admin-ajax.php' ),
341 + 'recommended_nonce' => wp_create_nonce( 'jltwp_adminify_recommended_nonce' ),
342 + ) );
343 + }
344 +
345 + // WP Adminify Options Page Style
346 + public function jltwp_adminify_admin_script()
347 + {
348 + echo '<style>.wp-adminify-two-columns{ display: flex; flex-wrap: wrap; padding: 15px; } .wp-adminify .adminify-hightlight-field{ border: 2px solid #0347FF !important; font-weight: 600 !important;} .wp-adminify-two-columns .adminify-full-width-field{ width: 100% !important; flex-basis: 100% !important; } .wp-adminify-two-columns > .adminify-field{ width: 49%; flex-basis: 49%; margin-right: 1%; margin-top: -1px; border: 1px solid #eee; box-sizing: border-box; } .wp-adminify-two-columns.aminify-title-width-40 .adminify-title, .aminify-title-width-40 .adminify-title{ width: 40% !important;} .wp-adminify-two-columns.aminify-title-width-40 .adminify-fieldset, .aminify-title-width-40 .adminify-fieldset{ width: calc(60% - 20px) !important;} .wp-adminify-two-columns.aminify-title-width-65 .adminify-title{ width: 65%;} .wp-adminify-two-columns.aminify-title-width-65 .adminify-fieldset{ width: calc(35% - 20px);} .wp-adminify-two-columns .adminify-field-subheading{height:25px;box-sizing: content-box; width: 100%; flex-basis: 100%;} .wp-adminify-white-label-notice-content { background-color: #fff; box-shadow: 0px 0px 50px rgb(0 0 0 / 13%); position: absolute; top: 150px; left: 400px; width: 530px; padding: 32px; padding-bottom: 50px; -webkit-border-radius: 20px; border-radius: 20px; text-align: center; z-index: 2; } .wp-adminify-white-label-notice-logo img { height: 100px; width: 250px; padding: 10px; padding-top: 10px; } .wp-adminify-white-label-notice-content h2 span{ color: #6814cd; text-transform: uppercase; } .wp-adminify-white-label-notice-content em{ font-size: 13px; color: red; } .wp-adminify-white-label-notice .wp-adminify-get-pro{ background-image: -moz-linear-gradient( 0deg, rgb(223,29,198) 0%, rgb(106,20,209) 100%); background-image: -webkit-linear-gradient( 0deg , rgb(223,29,198) 0%, rgb(106,20,209) 100%); background-image: -ms-linear-gradient( 0deg, rgb(223,29,198) 0%, rgb(106,20,209) 100%); border: none; box-shadow: none; color: #fff; cursor: pointer; font-weight: 700; line-height: 35px; padding: 0 15px; text-transform: uppercase; text-decoration: none; display: inline-block; width: 180px; padding: 5px 15px !important; border-radius: 10px; font-size: 15px; font-weight: 800; -webkit-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; } .wp-adminify-white-label-notice{ position: absolute !important; top: 0; left: 0; width: 100% !important; height: 100%; background: rgba(200, 200, 200, 0.5); -js-display: flex; display: -webkit-box; display: -webkit-flex; display: -moz-box; display: -ms-flexbox; display: flex; -webkit-box-pack: center; -webkit-justify-content: center; -moz-box-pack: center; -ms-flex-pack: center; justify-content: center;z-index: 1; } .wp-adminify-white-label-notice .wp-adminify-get-pro:hover { color:#fff; background-image: -moz-linear-gradient(0deg, rgb(106, 20, 209) 0%, rgb(223, 29, 198) 100%); background-image: -webkit-linear-gradient( 0deg, rgb(106, 20, 209) 0%, rgb(223, 29, 198) 100%); background-image: -ms-linear-gradient(0deg, rgb(106, 20, 209) 0%, rgb(223, 29, 198) 100%);} .adminify-field-callback a.wp-adminify-rollback-button{font-family:inherit !important;} .wp-adminify-rollback-button.dashicons, .wp-adminify-rollback-button.dashicons-before:before{ width: inherit !important;}</style>' ;
349 + }
350 +
351 + // Styles & Scripts
352 + public static function jltwp_adminify_enqueue_scripts()
353 + {
354 + // Styles
355 + wp_register_style( 'wp-adminify-vegas', WP_ADMINIFY_ASSETS . 'vendors/vegas/vegas' . Utils::assets_ext( '.css' ) );
356 + // Icons
357 + wp_register_style(
358 + 'wp-adminify-simple-line-icons',
359 + WP_ADMINIFY_ASSETS . 'fonts/simple-line-icons/css/simple-line-icons' . Utils::assets_ext( '.css' ),
360 + false,
361 + WP_ADMINIFY_VER
362 + );
363 + wp_register_style(
364 + 'wp-adminify-icomoon',
365 + WP_ADMINIFY_ASSETS . 'fonts/icomoon/style' . Utils::assets_ext( '.css' ),
366 + false,
367 + WP_ADMINIFY_VER
368 + );
369 + wp_register_style(
370 + 'wp-adminify-themify-icons',
371 + WP_ADMINIFY_ASSETS . 'fonts/themify-icons/themify-icons' . Utils::assets_ext( '.css' ),
372 + false,
373 + WP_ADMINIFY_VER
374 + );
375 + // Scripts
376 + wp_register_script(
377 + 'wp-adminify-vegas',
378 + WP_ADMINIFY_ASSETS . 'vendors/vegas/vegas' . Utils::assets_ext( '.js' ),
379 + array( 'jquery' ),
380 + WP_ADMINIFY_VER,
381 + true
382 + );
383 + wp_register_script(
384 + 'wp-adminify-vidim',
385 + WP_ADMINIFY_ASSETS . 'vendors/vidim/vidim' . Utils::assets_ext( '.js' ),
386 + array( 'jquery' ),
387 + WP_ADMINIFY_VER,
388 + true
389 + );
390 + }
194 391
195 - </script>
196 -
197 - <?php }
198 -
199 - }
200 -
201 -
202 -
203 - /**
204 - * Check if current page should skip Adminify scripts
205 - * Handles root, subdirectory, subdomain, and multisite installations
206 - *
207 - * @return bool True if scripts should be skipped
208 - */
209 - private function should_skip_adminify_scripts() {
210 - global $pagenow;
211 -
212 - // Pages where Adminify scripts should not load
213 - $excluded_pages = [
214 - 'customize.php',
215 - 'wp-login.php',
216 - 'wp-register.php',
217 - ];
218 -
219 - // Check global $pagenow
220 - if ( in_array( $pagenow, $excluded_pages, true ) ) {
221 - return true;
222 - }
223 -
224 - // Fallback: Check PHP_SELF for subdirectory WordPress installs
225 - // Normalize path by extracting just the filename
226 - $php_self = $_SERVER['PHP_SELF'] ?? '';
227 - $current_file = basename( $php_self );
228 -
229 - if ( in_array( $current_file, $excluded_pages, true ) ) {
230 - return true;
231 - }
232 -
233 - // Additional check using REQUEST_URI for edge cases
234 - $request_uri = $_SERVER['REQUEST_URI'] ?? '';
235 - foreach ( $excluded_pages as $page ) {
236 - if ( strpos( $request_uri, '/' . $page ) !== false ) {
237 - return true;
238 - }
239 - }
240 -
241 - return false;
242 - }
243 -
244 -
245 - public function jltwp_adminify_admin_scripts()
246 - {
247 - // Skip loading scripts on excluded pages (customize.php, login, etc.)
248 - if ( $this->should_skip_adminify_scripts() ) {
249 - return;
250 - }
251 -
252 - $screen = get_current_screen();
253 -
254 -
255 - // Register Styles
256 - wp_register_style('wp-adminify-admin', WP_ADMINIFY_ASSETS . 'css/wp-adminify' . Utils::assets_ext('.css'), false, WP_ADMINIFY_VER);
257 - wp_register_style('wp-adminify-default-ui', WP_ADMINIFY_ASSETS . 'css/wp-adminify-default-ui' . Utils::assets_ext('.css'), false, WP_ADMINIFY_VER);
258 - // wp_register_style('wp-adminify-admin-bar', WP_ADMINIFY_ASSETS . 'css/admin-bar' . Utils::assets_ext('.css'), false, WP_ADMINIFY_VER);
259 - wp_register_style('wp-adminify-menu-editor', WP_ADMINIFY_ASSETS . 'css/adminify-menu-editor' . Utils::assets_ext('.css'), false, WP_ADMINIFY_VER);
260 - // wp_register_style('wp-adminify-dark-mode', WP_ADMINIFY_ASSETS . 'css/dark-mode' . Utils::assets_ext('.css'), false, WP_ADMINIFY_VER);
261 - // wp_register_style('wp-adminify-rtl', WP_ADMINIFY_ASSETS . 'css/adminify-rtl' . Utils::assets_ext('.css'), false, WP_ADMINIFY_VER);
262 - // wp_register_style('wp-adminify-responsive', WP_ADMINIFY_ASSETS . 'css/adminify-responsive' . Utils::assets_ext('.css'), false, WP_ADMINIFY_VER);
263 - // wp_register_style('wp-adminify-animate', WP_ADMINIFY_ASSETS . 'vendors/animatecss/animate' . Utils::assets_ext('.css'), false, WP_ADMINIFY_VER);
264 - wp_register_style('wp-adminify-tokenize2', WP_ADMINIFY_ASSETS . 'vendors/tokenize/tokenize2' . Utils::assets_ext('.css'), false, WP_ADMINIFY_VER);
265 - wp_register_style('wp-adminify-select2', WP_ADMINIFY_ASSETS . 'vendors/select2/select2' . Utils::assets_ext('.css'), false, WP_ADMINIFY_VER);
266 -
267 -
268 - // Register Scripts
269 - wp_register_script('wp-adminify-tokenize2', WP_ADMINIFY_ASSETS . 'vendors/tokenize/tokenize2.min.js', array('jquery'), WP_ADMINIFY_VER, false);
270 - wp_register_script('wp-adminify-select2', WP_ADMINIFY_ASSETS . 'vendors/select2/select2.min.js', array('jquery'), WP_ADMINIFY_VER, true);
271 - wp_register_script('wp-adminify-admin', WP_ADMINIFY_ASSETS . 'admin/js/wp-adminify' . Utils::assets_ext('.js'), array('jquery'), WP_ADMINIFY_VER, true);
272 -
273 - // wp_register_script('wp-adminify-realtime-server', WP_ADMINIFY_ASSETS . 'js/adminify-realtime-server.js', array('jquery'), WP_ADMINIFY_VER, true);
274 -
275 - // Adminify Icon Picker
276 - wp_register_style('wp-adminify-simple-line-icons', WP_ADMINIFY_ASSETS . 'vendors/font-icons/simple-line-icons/css/simple-line-icons' . Utils::assets_ext('.css'), false, WP_ADMINIFY_VER);
277 - wp_register_style('wp-adminify-icon-picker', WP_ADMINIFY_ASSETS . 'vendors/adminify-icon-picker/css/style' . Utils::assets_ext('.css'), false, WP_ADMINIFY_VER);
278 - wp_register_script('wp-adminify-icon-picker', WP_ADMINIFY_ASSETS . 'vendors/adminify-icon-picker/js/adminify-icon-picker' . Utils::assets_ext('.js'), array('jquery'), WP_ADMINIFY_VER, true);
279 -
280 - // Dark Mode
281 - wp_register_script('wp-adminify--dark-mode', WP_ADMINIFY_ASSETS . 'admin/js/wp-adminify-dark-mode' . Utils::assets_ext('.js'), array(), WP_ADMINIFY_VER, false);
282 -
283 - // Menu Editor
284 - wp_register_script('wp-adminify-menu-editor', WP_ADMINIFY_ASSETS . 'admin/js/wp-adminify-menu-editor' . Utils::assets_ext('.js'), array('jquery', 'jquery-ui-sortable', 'wp-adminify-icon-picker'), WP_ADMINIFY_VER, true);
285 -
286 - // Styles Enqueue
287 - if (!empty($this->options['admin_ui'])) {
288 - // wp_enqueue_style('wp-adminify-animate');
289 - wp_enqueue_style('wp-adminify-admin');
290 - // Commented on: 9-6-24
291 - // wp_enqueue_style('wp-adminify-admin-bar');
292 - // wp_enqueue_style('wp-adminify-responsive');
293 - } else {
294 - wp_enqueue_style('wp-adminify-default-ui');
295 - }
296 -
297 -
298 - // RTL CSS
299 - if ( is_rtl() ) {
300 - wp_enqueue_style( 'adminify-rtl', WP_ADMINIFY_URL . 'Libs/adminify-framework/assets/css/style-rtl'. Utils::assets_ext('.css'), array(), WP_ADMINIFY_VER, 'all' );
301 - }
302 -
303 -
304 - // Dark Mode Style
305 - // wp_enqueue_style('wp-adminify-dark-mode');
306 - wp_enqueue_script('wp-adminify--dark-mode');
307 -
308 -
309 - // Get local fonts data for frontend - download if not exists
310 - $local_fonts = GoogleFontsLocal::get_instance();
311 - $local_fonts_urls = [];
312 -
313 - // Process light mode logo font
314 - if (!empty($this->options['light_dark_mode']['admin_ui_light_mode']['admin_ui_light_logo_text_typo']['font-family'])) {
315 - $font_family = $this->options['light_dark_mode']['admin_ui_light_mode']['admin_ui_light_logo_text_typo']['font-family'];
316 - $font_weight = !empty($this->options['light_dark_mode']['admin_ui_light_mode']['admin_ui_light_logo_text_typo']['font-weight']) ? $this->options['light_dark_mode']['admin_ui_light_mode']['admin_ui_light_logo_text_typo']['font-weight'] : '400';
317 -
318 - if (!$local_fonts->is_font_local($font_family)) {
319 - $local_fonts->download_font($font_family, $font_weight);
320 - }
321 -
322 - $local_url = $local_fonts->get_local_font_url($font_family);
323 - if ($local_url) {
324 - $local_fonts_urls['light_logo'] = $local_url;
325 - }
326 - }
327 -
328 - // Process dark mode logo font
329 - if (!empty($this->options['light_dark_mode']['admin_ui_dark_mode']['admin_ui_dark_logo_text_typo']['font-family'])) {
330 - $font_family = $this->options['light_dark_mode']['admin_ui_dark_mode']['admin_ui_dark_logo_text_typo']['font-family'];
331 - $font_weight = !empty($this->options['light_dark_mode']['admin_ui_dark_mode']['admin_ui_dark_logo_text_typo']['font-weight']) ? $this->options['light_dark_mode']['admin_ui_dark_mode']['admin_ui_dark_logo_text_typo']['font-weight'] : '400';
332 -
333 - if (!$local_fonts->is_font_local($font_family)) {
334 - $local_fonts->download_font($font_family, $font_weight);
335 - }
336 -
337 - $local_url = $local_fonts->get_local_font_url($font_family);
338 - if ($local_url) {
339 - $local_fonts_urls['dark_logo'] = $local_url;
340 - }
341 - }
342 -
343 - $local_fonts_data = [
344 - 'base_url' => $local_fonts->get_folder_url(),
345 - 'urls' => $local_fonts_urls,
346 - ];
347 -
348 - $localize_array_data = [
349 - 'admin_ajax' => admin_url('admin-ajax.php'),
350 - 'settings' => [
351 - 'adminify_ui' => !empty($this->options['admin_ui']) ? true : false,
352 - ],
353 - 'admin_nonce' => wp_create_nonce('adminify_nonce'),
354 - 'is_pro' => (class_exists('\\WPAdminify\\Pro\\Adminify_Pro') && !empty(\WPAdminify\Pro\Adminify_Pro::is_premium())) ? true : false,
355 - 'local_fonts' => $local_fonts_data
356 - ];
357 -
358 - // Pro-only settings flags (e.g. menu_search) attach via this
359 - // filter from Pro/Classes/Assets_Pro.php. Free leaves the
360 - // localize array untouched.
361 - $localize_array_data = (array) apply_filters( 'adminify_admin_localize_data', $localize_array_data, $this->options );
362 -
363 - // Scripts Enqueue
364 - wp_enqueue_script('wp-adminify-admin');
365 - wp_localize_script( 'wp-adminify-admin', 'WP_ADMINIFY_ADMIN', $localize_array_data );
366 -
367 - if (!wp_script_is('adminify-fa', 'enqueued') || !wp_script_is('adminify-fa5', 'enqueued')) {
368 - if (apply_filters('adminify_fa4', false)) {
369 - wp_enqueue_style('adminify-fa', 'https://cdn.jsdelivr.net/npm/[email protected]/css/font-awesome' . Utils::assets_ext('.css'), array(), '4.7.0', 'all');
370 - } else {
371 - wp_enqueue_style('adminify-fa5', 'https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/css/all' . Utils::assets_ext('.css'), array(), '5.15.5', 'all');
372 - wp_enqueue_style('adminify-fa5-v4-shims', 'https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/css/v4-shims' . Utils::assets_ext('.css'), array(), '5.15.5', 'all');
373 - }
374 - }
375 - wp_enqueue_style('wp-adminify-simple-line-icons');
376 -
377 - if ($screen->id === 'wp-adminify_page_wp-adminify-addons-plugins' || $screen->id === 'wp-adminify-pro_page_wp-adminify-addons-plugins') {
378 - // JS Files .
379 - wp_enqueue_script('wp-adminify-addons', WP_ADMINIFY_ASSETS . 'admin/js/wp-adminify-addons' . Utils::assets_ext('.js'), array('jquery'), WP_ADMINIFY_VER, true);
380 - wp_localize_script(
381 - 'wp-adminify-addons',
382 - 'WP_ADMINIFYCORE',
383 - array(
384 - 'admin_ajax' => admin_url('admin-ajax.php'),
385 - 'addons_nonce' => wp_create_nonce('jltwp_adminify_addons_nonce'),
386 - 'plugin_key' => 'jltwp_adminify'
387 - )
388 - );
389 - }
390 - }
391 -
392 - // WP Adminify Options Page Style
393 - public function jltwp_adminify_admin_script()
394 - {
395 - echo '<style>.wp-adminify-two-columns{ display: flex; flex-wrap: wrap; padding: 15px; } .wp-adminify .adminify-hightlight-field{ border: 2px solid #0347FF !important; font-weight: 600 !important;} .wp-adminify-two-columns .adminify-full-width-field{ width: 100% !important; flex-basis: 100% !important; } .wp-adminify-two-columns > .adminify-field{ width: 49%; flex-basis: 49%; margin-right: 1%; margin-top: -1px; border: 1px solid #eee; box-sizing: border-box; } .wp-adminify-two-columns.aminify-title-width-40 .adminify-title, .aminify-title-width-40 .adminify-title{ width: 40% !important;} .wp-adminify-two-columns.aminify-title-width-40 .adminify-fieldset, .aminify-title-width-40 .adminify-fieldset{ width: calc(60% - 20px) !important;} .wp-adminify-two-columns.aminify-title-width-65 .adminify-title{ width: 65%;} .wp-adminify-two-columns.aminify-title-width-65 .adminify-fieldset{ width: calc(35% - 20px);} .wp-adminify-two-columns .adminify-field-subheading{height:25px;box-sizing: content-box; width: 100%; flex-basis: 100%;} .wp-adminify-white-label-notice-content { background-color: #fff; box-shadow: 0px 0px 50px rgb(0 0 0 / 13%); position: absolute; top: 150px; left: 400px; width: 530px; padding: 32px; padding-bottom: 50px; -webkit-border-radius: 20px; border-radius: 20px; text-align: center; z-index: 2; } .wp-adminify-white-label-notice-logo img { height: 100px; width: 250px; padding: 10px; padding-top: 10px; } .wp-adminify-white-label-notice-content h2 span{ color: #6814cd; text-transform: uppercase; } .wp-adminify-white-label-notice-content em{ font-size: 13px; color: red; } .wp-adminify-white-label-notice .wp-adminify-get-pro{ background-image: -moz-linear-gradient( 0deg, rgb(223,29,198) 0%, rgb(106,20,209) 100%); background-image: -webkit-linear-gradient( 0deg , rgb(223,29,198) 0%, rgb(106,20,209) 100%); background-image: -ms-linear-gradient( 0deg, rgb(223,29,198) 0%, rgb(106,20,209) 100%); border: none; box-shadow: none; color: #fff; cursor: pointer; font-weight: 700; line-height: 35px; padding: 0 15px; text-transform: uppercase; text-decoration: none; display: inline-block; width: 180px; padding: 5px 15px !important; border-radius: 10px; font-size: 15px; font-weight: 800; -webkit-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; } .wp-adminify-white-label-notice{ position: absolute !important; top: 0; left: 0; width: 100% !important; height: 100%; background: rgba(200, 200, 200, 0.5); -js-display: flex; display: -webkit-box; display: -webkit-flex; display: -moz-box; display: -ms-flexbox; display: flex; -webkit-box-pack: center; -webkit-justify-content: center; -moz-box-pack: center; -ms-flex-pack: center; justify-content: center;z-index: 1; } .wp-adminify-white-label-notice .wp-adminify-get-pro:hover { color:#fff; background-image: -moz-linear-gradient(0deg, rgb(106, 20, 209) 0%, rgb(223, 29, 198) 100%); background-image: -webkit-linear-gradient( 0deg, rgb(106, 20, 209) 0%, rgb(223, 29, 198) 100%); background-image: -ms-linear-gradient(0deg, rgb(106, 20, 209) 0%, rgb(223, 29, 198) 100%);} .adminify-field-callback a.wp-adminify-rollback-button{font-family:inherit !important;} .wp-adminify-rollback-button.dashicons, .wp-adminify-rollback-button.dashicons-before:before{ width: inherit !important;}</style>';
396 - }
397 -
398 -}
392 +}