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 +369 -431 4.2.113.2.4.1 View file →
@@ -1,165 +1,51 @@
1 1 <?php
2 2
3 -namespace PXLBSAdminify\Inc\Classes;
3 +namespace WPAdminify\Inc\Classes;
4 4
5 -use PXLBSAdminify\Inc\Utils;
6 -use PXLBSAdminify\Inc\Admin\AdminSettings;
7 -use PXLBSAdminify\Inc\Admin\AdminSettingsModel;
8 -use PXLBSAdminify\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, 'pxlbsadminify_admin_scripts'), 100);
30 - add_action('wp_ajax_pxlbsadminify_addons_install_active', array( $this, 'pxlbsadminify_addons_install_active' ) );
31 - add_action('wp_ajax_pxlbsadminify_ssl_check', array( $this, 'pxlbsadminify_ssl_check' ) );
32 -
33 - if ($this->is_dark_mode() || $this->classic_editor || $this->block_editor) {
34 - add_action('admin_head', array($this, 'header_scripts'));
35 - }
36 - }
37 -
38 -
39 - /**
40 - * Function: Ajax Call for Install and Activate WP Adminify Plugin
41 - */
42 - function pxlbsadminify_addons_install_active()
43 - {
44 -
45 - // Include necessary WordPress files
46 - require_once ABSPATH . 'wp-admin/includes/plugin-install.php';
47 - require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
48 - require_once ABSPATH . 'wp-admin/includes/class-wp-ajax-upgrader-skin.php';
49 - require_once ABSPATH . 'wp-admin/includes/class-plugin-upgrader.php';
50 -
51 - if (isset($_POST['plugin'])) {
52 -
53 - $nonce = isset($_POST['nonce']) ? sanitize_text_field(wp_unslash($_POST['nonce'])) : '';
54 -
55 - if (!wp_verify_nonce($nonce, 'pxlbsadminify_addons_nonce')) {
56 - wp_send_json_error(array('mess' => esc_html__('Nonce is invalid', 'adminify')));
57 - }
58 -
59 - if ((is_multisite() && is_network_admin()) || !current_user_can('install_plugins')) {
60 - wp_send_json_error(array('mess' => esc_html__('Invalid Access', 'adminify')));
61 - }
62 -
63 - $plugin = sanitize_text_field(wp_unslash($_POST['plugin']));
64 -
65 - if (empty($plugin)) {
66 - wp_send_json_error(array('mess' => esc_html__('Invalid plugin', 'adminify')));
67 - }
68 -
69 - // Validate the requested plugin against the trusted addons list
70 - // and replace the user-supplied value with the canonical
71 - // download URL from that list before passing it to the upgrader.
72 - $addons = new Addons_Plugins();
73 - $plugins_list = (array) $addons->get_adminify_plugins_lists();
74 - $requested_slug = '';
75 - $trusted_source = '';
76 - foreach ( $plugins_list as $slug => $entry ) {
77 - if ( ! empty( $entry['download_link'] ) && $entry['download_link'] === $plugin ) {
78 - $requested_slug = $slug;
79 - $trusted_source = $entry['download_link'];
80 - break;
81 - }
82 - if ( $slug === $plugin ) {
83 - $requested_slug = $slug;
84 - $trusted_source = ! empty( $entry['download_link'] ) ? $entry['download_link'] : '';
85 - break;
86 - }
87 - }
88 - if ( empty( $requested_slug ) || empty( $trusted_source ) ) {
89 - wp_send_json_error( array( 'mess' => esc_html__( 'Invalid plugin', 'adminify' ) ) );
90 - }
91 -
92 - $type = isset($_POST['type']) ? sanitize_text_field(wp_unslash($_POST['type'])) : 'install';
93 - $skin = new \WP_Ajax_Upgrader_Skin();
94 - $upgrader = new \Plugin_Upgrader($skin);
95 -
96 - if ('install' === $type) {
97 - $result = $upgrader->install( $trusted_source );
98 - if (is_wp_error($result)) {
99 - wp_send_json_error(
100 - array(
101 - 'mess' => $result->get_error_message(),
102 - )
103 - );
104 - }
105 - $args = array(
106 - 'slug' => $upgrader->result['destination_name'],
107 - 'fields' => array(
108 - 'short_description' => true,
109 - 'icons' => true,
110 - 'banners' => false,
111 - 'added' => false,
112 - 'reviews' => false,
113 - 'sections' => false,
114 - 'requires' => false,
115 - 'rating' => false,
116 - 'ratings' => false,
117 - 'downloaded' => false,
118 - 'last_updated' => false,
119 - 'added' => false,
120 - 'tags' => false,
121 - 'compatibility' => false,
122 - 'homepage' => false,
123 - 'donate_link' => false,
124 - ),
125 - );
126 - $plugin_data = plugins_api('plugin_information', $args);
127 -
128 - if ($plugin_data && !is_wp_error($plugin_data)) {
129 - $install_status = \install_plugin_install_status($plugin_data);
130 - activate_plugin($install_status['file']);
131 - }
132 - wp_die(); // die();
133 - }
134 - }
135 - }
136 -
137 -
138 - /*
139 - * Function is_dark_mode()
140 - *
141 - */
142 - public function is_dark_mode()
143 - {
144 -
145 - if (!empty($this->dark_mode) && $this->dark_mode == 'dark') {
146 - $adminify_dark_mode = true;
147 - } else {
148 - $adminify_dark_mode = false;
149 - }
150 - return $adminify_dark_mode;
151 - }
152 -
153 - public function header_scripts()
154 - {
155 - // Skip on excluded pages
156 - if ( $this->should_skip_adminify_scripts() ) {
157 - return;
158 - }
159 -
160 - if (!empty($this->dark_mode) && $this->dark_mode == 'dark') { ?>
161 -
162 48 <script>
163 49 window.AdminifyDarkMode.enable({
164 50 brightness: 120
165 51 })
@@ -169,286 +55,338 @@
169 55 brightness: 120
170 56 })
171 57 });
172 58 </script>
173 - <?php }
174 59
175 - if (!empty($this->dark_mode) && $this->dark_mode == 'system') { ?>
176 - <script>
177 - const isDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
178 - if(!!isDark) {
179 - window.AdminifyDarkMode.enable({
180 - brightness: 120
181 - })
60 + <style>
61 + .wp-adminify.adminify-dark-mode .logo-light {
62 + display: none;
63 + }
182 64
183 - addEventListener("load", (event) => {
184 - window.AdminifyDarkMode.enable({
185 - brightness: 120
186 - })
187 - });
188 - } else {
189 - window.AdminifyDarkMode.disable()
190 -
191 - addEventListener("load", (event) => {
192 - window.AdminifyDarkMode.disable()
193 - });
65 + .wp-adminify.adminify-dark-mode .logo-dark {
66 + display: block !important;
194 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/font-awesome@4.7.0/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/fontawesome-free@5.15.4/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/fontawesome-free@5.15.4/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 + }
195 391
196 - </script>
197 -
198 - <?php }
199 -
200 - }
201 -
202 -
203 -
204 - /**
205 - * Check if current page should skip Adminify scripts
206 - * Handles root, subdirectory, subdomain, and multisite installations
207 - *
208 - * @return bool True if scripts should be skipped
209 - */
210 - private function should_skip_adminify_scripts() {
211 - global $pagenow;
212 -
213 - // Pages where Adminify scripts should not load
214 - $excluded_pages = [
215 - 'customize.php',
216 - 'wp-login.php',
217 - 'wp-register.php',
218 - ];
219 -
220 - // Check global $pagenow
221 - if ( in_array( $pagenow, $excluded_pages, true ) ) {
222 - return true;
223 - }
224 -
225 - // Fallback: Check PHP_SELF for subdirectory WordPress installs
226 - // Normalize path by extracting just the filename
227 - $php_self = isset( $_SERVER['PHP_SELF'] ) ? sanitize_text_field( wp_unslash( $_SERVER['PHP_SELF'] ) ) : '';
228 - $current_file = basename( $php_self );
229 -
230 - if ( in_array( $current_file, $excluded_pages, true ) ) {
231 - return true;
232 - }
233 -
234 - // Additional check using REQUEST_URI for edge cases
235 - $request_uri = isset( $_SERVER['REQUEST_URI'] ) ? sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : '';
236 - foreach ( $excluded_pages as $page ) {
237 - if ( strpos( $request_uri, '/' . $page ) !== false ) {
238 - return true;
239 - }
240 - }
241 -
242 - return false;
243 - }
244 -
245 -
246 - public function pxlbsadminify_admin_scripts()
247 - {
248 - // Skip loading scripts on excluded pages (customize.php, login, etc.)
249 - if ( $this->should_skip_adminify_scripts() ) {
250 - return;
251 - }
252 -
253 - $screen = get_current_screen();
254 -
255 -
256 - // Register Styles
257 - wp_register_style('adminify-admin', PXLBSADMINIFY_ASSETS . 'css/wp-adminify' . Utils::assets_ext('.css'), false, PXLBSADMINIFY_VER);
258 - wp_register_style('adminify-default-ui', PXLBSADMINIFY_ASSETS . 'css/wp-adminify-default-ui' . Utils::assets_ext('.css'), false, PXLBSADMINIFY_VER);
259 - // wp_register_style('wp-adminify-admin-bar', PXLBSADMINIFY_ASSETS . 'css/admin-bar' . Utils::assets_ext('.css'), false, PXLBSADMINIFY_VER);
260 - wp_register_style('adminify-menu-editor', PXLBSADMINIFY_ASSETS . 'css/adminify-menu-editor' . Utils::assets_ext('.css'), false, PXLBSADMINIFY_VER);
261 - // wp_register_style('wp-adminify-dark-mode', PXLBSADMINIFY_ASSETS . 'css/dark-mode' . Utils::assets_ext('.css'), false, PXLBSADMINIFY_VER);
262 - // wp_register_style('wp-adminify-rtl', PXLBSADMINIFY_ASSETS . 'css/adminify-rtl' . Utils::assets_ext('.css'), false, PXLBSADMINIFY_VER);
263 - // wp_register_style('wp-adminify-responsive', PXLBSADMINIFY_ASSETS . 'css/adminify-responsive' . Utils::assets_ext('.css'), false, PXLBSADMINIFY_VER);
264 - // wp_register_style('wp-adminify-animate', PXLBSADMINIFY_ASSETS . 'vendors/animatecss/animate' . Utils::assets_ext('.css'), false, PXLBSADMINIFY_VER);
265 - wp_register_style('adminify-tokenize2', PXLBSADMINIFY_ASSETS . 'vendors/tokenize/tokenize2' . Utils::assets_ext('.css'), false, PXLBSADMINIFY_VER);
266 - wp_register_style('adminify-select2', PXLBSADMINIFY_ASSETS . 'vendors/select2/select2' . Utils::assets_ext('.css'), false, PXLBSADMINIFY_VER);
267 -
268 -
269 - // Register Scripts
270 - wp_register_script('adminify-tokenize2', PXLBSADMINIFY_ASSETS . 'vendors/tokenize/tokenize2.min.js', array('jquery'), PXLBSADMINIFY_VER, false);
271 - wp_register_script('adminify-select2', PXLBSADMINIFY_ASSETS . 'vendors/select2/select2.min.js', array('jquery'), PXLBSADMINIFY_VER, true);
272 - wp_register_script('adminify-admin', PXLBSADMINIFY_ASSETS . 'admin/js/wp-adminify' . Utils::assets_ext('.js'), array('jquery'), PXLBSADMINIFY_VER, true);
273 -
274 - // wp_register_script('wp-adminify-realtime-server', PXLBSADMINIFY_ASSETS . 'js/adminify-realtime-server.js', array('jquery'), PXLBSADMINIFY_VER, true);
275 -
276 - // Adminify Icon Picker
277 - wp_register_style('adminify-simple-line-icons', PXLBSADMINIFY_ASSETS . 'vendors/font-icons/simple-line-icons/css/simple-line-icons' . Utils::assets_ext('.css'), false, PXLBSADMINIFY_VER);
278 - wp_register_style('adminify-icon-picker', PXLBSADMINIFY_ASSETS . 'vendors/adminify-icon-picker/css/style' . Utils::assets_ext('.css'), false, PXLBSADMINIFY_VER);
279 - wp_register_script('adminify-icon-picker', PXLBSADMINIFY_ASSETS . 'vendors/adminify-icon-picker/js/adminify-icon-picker' . Utils::assets_ext('.js'), array('jquery'), PXLBSADMINIFY_VER, true);
280 -
281 - // Dark Mode
282 - wp_register_script('adminify--dark-mode', PXLBSADMINIFY_ASSETS . 'admin/js/wp-adminify-dark-mode' . Utils::assets_ext('.js'), array(), PXLBSADMINIFY_VER, false);
283 -
284 - // Menu Editor
285 - wp_register_script('adminify-menu-editor', PXLBSADMINIFY_ASSETS . 'admin/js/wp-adminify-menu-editor' . Utils::assets_ext('.js'), array('jquery', 'jquery-ui-sortable', 'adminify-icon-picker'), PXLBSADMINIFY_VER, true);
286 -
287 - // Styles Enqueue
288 - if (!empty($this->options['admin_ui'])) {
289 - // wp_enqueue_style('wp-adminify-animate');
290 - wp_enqueue_style('adminify-admin');
291 - // Commented on: 9-6-24
292 - // wp_enqueue_style('wp-adminify-admin-bar');
293 - // wp_enqueue_style('wp-adminify-responsive');
294 - } else {
295 - wp_enqueue_style('adminify-default-ui');
296 - }
297 -
298 -
299 - // RTL CSS
300 - if ( is_rtl() ) {
301 - wp_enqueue_style( 'adminify-rtl', PXLBSADMINIFY_URL . 'Libs/adminify-framework/assets/css/style-rtl'. Utils::assets_ext('.css'), array(), PXLBSADMINIFY_VER, 'all' );
302 - }
303 -
304 -
305 - // Dark Mode Style
306 - // wp_enqueue_style('adminify-dark-mode');
307 - wp_enqueue_script('adminify--dark-mode');
308 -
309 -
310 - // Get local fonts data for frontend - download if not exists
311 - $local_fonts = GoogleFontsLocal::get_instance();
312 - $local_fonts_urls = [];
313 -
314 - // Process light mode logo font
315 - if (!empty($this->options['light_dark_mode']['admin_ui_light_mode']['admin_ui_light_logo_text_typo']['font-family'])) {
316 - $font_family = $this->options['light_dark_mode']['admin_ui_light_mode']['admin_ui_light_logo_text_typo']['font-family'];
317 - $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';
318 -
319 - if (!$local_fonts->is_font_local($font_family)) {
320 - $local_fonts->download_font($font_family, $font_weight);
321 - }
322 -
323 - $local_url = $local_fonts->get_local_font_url($font_family);
324 - if ($local_url) {
325 - $local_fonts_urls['light_logo'] = $local_url;
326 - }
327 - }
328 -
329 - // Process dark mode logo font
330 - if (!empty($this->options['light_dark_mode']['admin_ui_dark_mode']['admin_ui_dark_logo_text_typo']['font-family'])) {
331 - $font_family = $this->options['light_dark_mode']['admin_ui_dark_mode']['admin_ui_dark_logo_text_typo']['font-family'];
332 - $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';
333 -
334 - if (!$local_fonts->is_font_local($font_family)) {
335 - $local_fonts->download_font($font_family, $font_weight);
336 - }
337 -
338 - $local_url = $local_fonts->get_local_font_url($font_family);
339 - if ($local_url) {
340 - $local_fonts_urls['dark_logo'] = $local_url;
341 - }
342 - }
343 -
344 - $local_fonts_data = [
345 - 'base_url' => $local_fonts->get_folder_url(),
346 - 'urls' => $local_fonts_urls,
347 - ];
348 -
349 - $localize_array_data = [
350 - 'admin_ajax' => admin_url('admin-ajax.php'),
351 - 'settings' => [
352 - 'adminify_ui' => !empty($this->options['admin_ui']) ? true : false,
353 - ],
354 - 'admin_nonce' => wp_create_nonce('adminify_nonce'),
355 - 'is_pro' => (class_exists('\\PXLBSAdminify\\Pro\\Adminify_Pro') && !empty(\PXLBSAdminify\Pro\Adminify_Pro::is_premium())) ? true : false,
356 - 'local_fonts' => $local_fonts_data
357 - ];
358 -
359 - // Pro-only settings flags (e.g. menu_search) attach via this
360 - // filter from Pro/Classes/Assets_Pro.php. Free leaves the
361 - // localize array untouched.
362 - $localize_array_data = (array) apply_filters( 'pxlbsadminify_admin_localize_data', $localize_array_data, $this->options );
363 -
364 - // Scripts Enqueue
365 - wp_enqueue_script('adminify-admin');
366 - wp_localize_script( 'adminify-admin', 'PXLBSADMINIFY_ADMIN', $localize_array_data );
367 -
368 - if (!wp_script_is('adminify-fa', 'enqueued') || !wp_script_is('adminify-fa5', 'enqueued')) {
369 - if (apply_filters('adminify_fa4', false)) {
370 - wp_enqueue_style('adminify-fa', PXLBSADMINIFY_ASSETS . 'vendors/fontawesome/fa4/css/font-awesome.min.css', array(), '4.7.0', 'all');
371 - } else {
372 - wp_enqueue_style('adminify-fa5', PXLBSADMINIFY_ASSETS . 'vendors/fontawesome/fa5/css/all.min.css', array(), '5.15.4', 'all');
373 - wp_enqueue_style('adminify-fa5-v4-shims', PXLBSADMINIFY_ASSETS . 'vendors/fontawesome/fa5/css/v4-shims.min.css', array(), '5.15.4', 'all');
374 - }
375 - }
376 - wp_enqueue_style('adminify-simple-line-icons');
377 -
378 - // Adminify UI HTTPS gate — only on the main settings screen where the switcher lives.
379 - if (isset($screen->id) && false !== strpos($screen->id, 'wp-adminify-settings')) {
380 - wp_enqueue_script('adminify-ui-ssl-check', PXLBSADMINIFY_ASSETS . 'admin/js/adminify-ui-ssl-check.js', array('jquery'), PXLBSADMINIFY_VER, true);
381 - wp_localize_script(
382 - 'adminify-ui-ssl-check',
383 - 'PXLBSADMINIFY_SSL',
384 - array(
385 - 'ajax_url' => admin_url('admin-ajax.php'),
386 - 'nonce' => wp_create_nonce('adminify_nonce'),
387 - 'field_id' => 'admin_ui',
388 - 'i18n' => array(
389 - 'label' => esc_html__('Adminify UI needs HTTPS:', 'adminify'),
390 - 'generic_error' => esc_html__('Could not verify HTTPS right now. Please try again.', 'adminify'),
391 - ),
392 - )
393 - );
394 - }
395 -
396 - if ($screen->id === 'adminify_page_wp-adminify-addons-plugins' || $screen->id === 'adminify-pro_page_wp-adminify-addons-plugins') {
397 - // JS Files .
398 - wp_enqueue_script('adminify-addons', PXLBSADMINIFY_ASSETS . 'admin/js/wp-adminify-addons' . Utils::assets_ext('.js'), array('jquery'), PXLBSADMINIFY_VER, true);
399 - wp_localize_script(
400 - 'adminify-addons',
401 - 'PXLBSADMINIFY_CORE',
402 - array(
403 - 'admin_ajax' => admin_url('admin-ajax.php'),
404 - 'addons_nonce' => wp_create_nonce('pxlbsadminify_addons_nonce'),
405 - 'plugin_key' => 'pxlbsadminify'
406 - )
407 - );
408 - }
409 - }
410 -
411 - /**
412 - * AJAX: verify the site is HTTPS-ready before enabling the Adminify UI.
413 - *
414 - * Called from assets/admin/js/adminify-ui-ssl-check.js when the user flips
415 - * the "Adminify UI" switcher on. Returns success only when the dashboard
416 - * frame would actually load (see Utils::adminify_ui_https_status()).
417 - */
418 - public function pxlbsadminify_ssl_check()
419 - {
420 - $nonce = isset($_POST['nonce']) ? sanitize_text_field(wp_unslash($_POST['nonce'])) : '';
421 -
422 - if (!wp_verify_nonce($nonce, 'adminify_nonce')) {
423 - wp_send_json_error(array(
424 - 'https_ready' => false,
425 - 'message' => esc_html__('Security check failed. Please reload the page and try again.', 'adminify'),
426 - ));
427 - }
428 -
429 - if (!current_user_can('manage_options')) {
430 - wp_send_json_error(array(
431 - 'https_ready' => false,
432 - 'message' => esc_html__('You do not have permission to change this setting.', 'adminify'),
433 - ));
434 - }
435 -
436 - $status = Utils::adminify_ui_https_status();
437 -
438 - if (!empty($status['ready'])) {
439 - wp_send_json_success(array('https_ready' => true));
440 - }
441 -
442 - wp_send_json_error(array(
443 - 'https_ready' => false,
444 - 'message' => $status['message'],
445 - ));
446 - }
447 -
448 - // WP Adminify Options Page Style
449 - public function pxlbsadminify_admin_script()
450 - {
451 - 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>';
452 - }
453 -
454 -}
392 +}