PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 3.2.4.5
Adminify – White Label, Admin Menu Editor, Login Customizer v3.2.4.5
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 +352 -423 4.2.16 → 3.2.4.5 View file →
@@ -1,165 +1,50 @@
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 }
12 +class Assets extends AdminSettingsModel {
13 + public $classic_editor = true;
16 14
17 -class Assets extends AdminSettingsModel
18 -{
15 + public $block_editor = true;
19 16
20 - public $classic_editor = true;
21 - public $block_editor = true;
22 - public $dark_mode = true;
17 + public $dark_mode = true;
23 18
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' ) );
19 + public function __construct() {
20 + $this->options = (array) AdminSettings::get_instance()->get();
21 + $this->dark_mode = $this->options['admin_bar_mode'];
22 + add_action( 'admin_enqueue_scripts', array($this, 'jltwp_adminify_admin_scripts'), 100 );
23 + add_action( 'wp_enqueue_scripts', array($this, 'jltwp_adminify_enqueue_scripts'), 100 );
24 + if ( $this->is_dark_mode() || $this->classic_editor || $this->block_editor ) {
25 + add_action( 'admin_head', array($this, 'header_scripts') );
26 + }
27 + }
32 28
33 - if ($this->is_dark_mode() || $this->classic_editor || $this->block_editor) {
34 - add_action('admin_head', array($this, 'header_scripts'));
35 - }
36 - }
29 + /**
30 + * Function is_dark_mode()
31 + *
32 + * @return DateTimeZone
33 + */
34 + public function is_dark_mode() {
35 + if ( !empty( $this->dark_mode ) && $this->dark_mode == 'dark' ) {
36 + $adminify_dark_mode = true;
37 + } else {
38 + $adminify_dark_mode = false;
39 + }
40 + return $adminify_dark_mode;
41 + }
37 42
43 + public function header_scripts() {
44 + if ( !empty( $this->dark_mode ) && $this->dark_mode == 'dark' ) {
45 + ?>
38 46
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 47 <script>
163 48 window.AdminifyDarkMode.enable({
164 49 brightness: 120
165 50 })
@@ -169,286 +54,330 @@
169 54 brightness: 120
170 55 })
171 56 });
172 57 </script>
173 - <?php }
174 58
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 - })
59 + <style>
60 + .wp-adminify.adminify-dark-mode .logo-light {
61 + display: none;
62 + }
182 63
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 - });
64 + .wp-adminify.adminify-dark-mode .logo-dark {
65 + display: block !important;
194 66 }
67 + </style>
68 + <?php
69 + }
70 + }
195 71
196 - </script>
72 + // Google Fonts
73 + function jltwp_adminify_google_fonts_url() {
74 + $font_url = '';
75 + $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' );
76 + if ( 'off' !== _x( 'on', 'Google font: on or off', 'adminify' ) ) {
77 + $font_url = add_query_arg( 'family', urlencode( $font_family ), '//fonts.googleapis.com/css' );
78 + }
79 + return $font_url;
80 + }
197 81
198 - <?php }
82 + public function jltwp_adminify_admin_scripts() {
83 + $screen = get_current_screen();
84 + // Register Styles
85 + wp_register_style(
86 + 'wp-adminify-admin',
87 + WP_ADMINIFY_ASSETS . 'css/wp-adminify.min.css',
88 + false,
89 + WP_ADMINIFY_VER
90 + );
91 + wp_register_style(
92 + 'wp-adminify-default-ui',
93 + WP_ADMINIFY_ASSETS . 'css/wp-adminify-default-ui.min.css',
94 + false,
95 + WP_ADMINIFY_VER
96 + );
97 + wp_register_style(
98 + 'wp-adminify-admin-bar',
99 + WP_ADMINIFY_ASSETS . 'css/admin-bar' . Utils::assets_ext( '.css' ),
100 + false,
101 + WP_ADMINIFY_VER
102 + );
103 + wp_register_style(
104 + 'wp-adminify-menu-editor',
105 + WP_ADMINIFY_ASSETS . 'css/adminify-menu-editor' . Utils::assets_ext( '.css' ),
106 + false,
107 + WP_ADMINIFY_VER
108 + );
109 + wp_register_style(
110 + 'wp-adminify-dark-mode',
111 + WP_ADMINIFY_ASSETS . 'css/dark-mode' . Utils::assets_ext( '.css' ),
112 + false,
113 + WP_ADMINIFY_VER
114 + );
115 + wp_register_style(
116 + 'wp-adminify-rtl',
117 + WP_ADMINIFY_ASSETS . 'css/adminify-rtl' . Utils::assets_ext( '.css' ),
118 + false,
119 + WP_ADMINIFY_VER
120 + );
121 + wp_register_style(
122 + 'wp-adminify-responsive',
123 + WP_ADMINIFY_ASSETS . 'css/adminify-responsive' . Utils::assets_ext( '.css' ),
124 + false,
125 + WP_ADMINIFY_VER
126 + );
127 + wp_register_style(
128 + 'wp-adminify-tokenize2',
129 + WP_ADMINIFY_ASSETS . 'vendors/tokenize/tokenize2' . Utils::assets_ext( '.css' ),
130 + false,
131 + WP_ADMINIFY_VER
132 + );
133 + wp_register_style(
134 + 'wp-adminify-animate',
135 + WP_ADMINIFY_ASSETS . 'vendors/animatecss/animate' . Utils::assets_ext( '.css' ),
136 + false,
137 + WP_ADMINIFY_VER
138 + );
139 + // Register Fonts Styles
140 + wp_register_style(
141 + 'wp-adminify-simple-line-icons',
142 + WP_ADMINIFY_ASSETS . 'fonts/simple-line-icons/css/simple-line-icons' . Utils::assets_ext( '.css' ),
143 + false,
144 + WP_ADMINIFY_VER
145 + );
146 + wp_register_style(
147 + 'wp-adminify-icomoon',
148 + WP_ADMINIFY_ASSETS . 'fonts/icomoon/style' . Utils::assets_ext( '.css' ),
149 + false,
150 + WP_ADMINIFY_VER
151 + );
152 + wp_register_style(
153 + 'wp-adminify-themify-icons',
154 + WP_ADMINIFY_ASSETS . 'fonts/themify-icons/themify-icons' . Utils::assets_ext( '.css' ),
155 + false,
156 + WP_ADMINIFY_VER
157 + );
158 + // Register Scripts
159 + wp_register_script(
160 + 'wp-adminify-circle-menu',
161 + WP_ADMINIFY_ASSETS . 'vendors/circle-menu/jQuery.circleMenu.js',
162 + array('jquery'),
163 + WP_ADMINIFY_VER,
164 + false
165 + );
166 + wp_register_script(
167 + 'wp-adminify-tokenize2',
168 + WP_ADMINIFY_ASSETS . 'vendors/tokenize/tokenize2.min.js',
169 + array('jquery'),
170 + WP_ADMINIFY_VER,
171 + false
172 + );
173 + wp_register_script(
174 + 'wp-adminify-admin',
175 + WP_ADMINIFY_ASSETS . 'js/wp-adminify.js',
176 + array('jquery'),
177 + WP_ADMINIFY_VER,
178 + true
179 + );
180 + wp_register_script(
181 + 'wp-adminify-menu-editor',
182 + WP_ADMINIFY_ASSETS . 'js/wp-adminify-menu-editor.js',
183 + array('jquery', 'jquery-ui-sortable', 'wp-adminify-icon-picker'),
184 + WP_ADMINIFY_VER,
185 + true
186 + );
187 + wp_register_script(
188 + 'wp-adminify-realtime-server',
189 + WP_ADMINIFY_ASSETS . 'js/adminify-realtime-server.js',
190 + array('jquery'),
191 + WP_ADMINIFY_VER,
192 + true
193 + );
194 + // Login Customizer Control
195 + wp_register_script(
196 + 'wp-adminify-login-customizer-controls',
197 + WP_ADMINIFY_ASSETS . 'css/controls' . Utils::assets_ext( '.css' ),
198 + null,
199 + WP_ADMINIFY_VER
200 + );
201 + // Adminify Icon Picker
202 + wp_register_style(
203 + 'wp-adminify-icon-picker',
204 + WP_ADMINIFY_ASSETS . 'vendors/adminify-icon-picker/css/style' . Utils::assets_ext( '.css' ),
205 + false,
206 + WP_ADMINIFY_VER
207 + );
208 + wp_register_script(
209 + 'wp-adminify-icon-picker',
210 + WP_ADMINIFY_ASSETS . 'vendors/adminify-icon-picker/js/adminify-icon-picker.js',
211 + array('jquery'),
212 + WP_ADMINIFY_VER,
213 + true
214 + );
215 + // Vendor
216 + wp_register_script(
217 + 'wp-adminify-vue-manifest',
218 + WP_ADMINIFY_ASSETS . 'admin/js/manifest.js',
219 + array(),
220 + WP_ADMINIFY_VER,
221 + true
222 + );
223 + wp_register_script(
224 + 'wp-adminify-vue-vendors',
225 + WP_ADMINIFY_ASSETS . 'admin/js/vendor' . Utils::assets_ext( '.js' ),
226 + array('wp-adminify-vue-manifest'),
227 + WP_ADMINIFY_VER,
228 + true
229 + );
230 + // Adminify Admin Columns
231 + wp_enqueue_style(
232 + 'wp-adminify-admin-columns',
233 + WP_ADMINIFY_ASSETS . 'admin/css/wp-adminify--admin-columns' . Utils::assets_ext( '.css' ),
234 + array('wp-adminify-themify-icons'),
235 + WP_ADMINIFY_VER
236 + );
237 + wp_register_script(
238 + 'wp-adminify-admin-columns',
239 + WP_ADMINIFY_ASSETS . 'admin/js/wp-adminify--admin-columns' . Utils::assets_ext( '.js' ),
240 + array('jquery', 'wp-adminify-vue-vendors'),
241 + WP_ADMINIFY_VER,
242 + true
243 + );
244 + // Adminify Page Speed
245 + wp_register_script(
246 + 'wp-adminify--page-speed',
247 + WP_ADMINIFY_ASSETS . 'admin/js/wp-adminify--page-speed' . Utils::assets_ext( '.js' ),
248 + array('jquery', 'wp-adminify-vue-vendors'),
249 + WP_ADMINIFY_VER,
250 + true
251 + );
252 + // Adminify Folder
253 + wp_register_script(
254 + 'wp-adminify--folder',
255 + WP_ADMINIFY_ASSETS . 'admin/js/wp-adminify--folder' . Utils::assets_ext( '.js' ),
256 + array(
257 + 'jquery',
258 + 'jquery-ui-droppable',
259 + 'jquery-ui-draggable',
260 + 'wp-adminify-vue-vendors'
261 + ),
262 + WP_ADMINIFY_VER,
263 + true
264 + );
265 + // Dark Mode
266 + wp_register_script(
267 + 'wp-adminify--dark-mode',
268 + WP_ADMINIFY_ASSETS . 'admin/js/wp-adminify-dark-mode.js',
269 + array(),
270 + WP_ADMINIFY_VER,
271 + false
272 + );
273 + // Styles Enqueue
274 + if ( empty( $this->options['admin_general_google_font']['font-family'] ) ) {
275 + wp_enqueue_style( 'wp-adminify-google-fonts', $this->jltwp_adminify_google_fonts_url() );
276 + }
277 + if ( !empty( $this->options['admin_ui'] ) ) {
278 + wp_enqueue_style( 'wp-adminify-animate' );
279 + wp_enqueue_style( 'wp-adminify-admin' );
280 + // wp_enqueue_style('wp-adminify-admin-bar');
281 + wp_enqueue_style( 'wp-adminify-responsive' );
282 + } else {
283 + wp_enqueue_style( 'wp-adminify-default-ui' );
284 + }
285 + // Dark Mode Style
286 + // wp_enqueue_style('wp-adminify-dark-mode');
287 + wp_enqueue_script( 'wp-adminify--dark-mode' );
288 + if ( is_rtl() ) {
289 + wp_enqueue_style( 'wp-adminify-rtl' );
290 + }
291 + // Scripts Enqueue
292 + wp_enqueue_script( 'wp-adminify-admin' );
293 + if ( !wp_script_is( 'adminify-fa', 'enqueued' ) || !wp_script_is( 'adminify-fa5', 'enqueued' ) ) {
294 + if ( apply_filters( 'adminify_fa4', false ) ) {
295 + wp_enqueue_style(
296 + 'adminify-fa',
297 + 'https://cdn.jsdelivr.net/npm/[email protected]/css/font-awesome' . Utils::assets_ext( '.css' ),
298 + array(),
299 + '4.7.0',
300 + 'all'
301 + );
302 + } else {
303 + wp_enqueue_style(
304 + 'adminify-fa5',
305 + 'https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/css/all' . Utils::assets_ext( '.css' ),
306 + array(),
307 + '5.15.5',
308 + 'all'
309 + );
310 + wp_enqueue_style(
311 + 'adminify-fa5-v4-shims',
312 + 'https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/css/v4-shims' . Utils::assets_ext( '.css' ),
313 + array(),
314 + '5.15.5',
315 + 'all'
316 + );
317 + }
318 + }
319 + // Load Scripts/Styles only WP Adminify Admin Page
320 + if ( $screen->id == 'toplevel_page_wp-adminify-settings' ) {
321 + // Admin Notice Dismiss
322 + $this->jltwp_adminify_admin_script();
323 + }
324 + // JS Files .
325 + wp_enqueue_script(
326 + 'wp-adminify-admin-common',
327 + WP_ADMINIFY_ASSETS . 'js/wp-adminify-admin.js',
328 + array('jquery'),
329 + WP_ADMINIFY_VER,
330 + true
331 + );
332 + wp_localize_script( 'wp-adminify-admin-common', 'WP_ADMINIFYCORE', array(
333 + 'admin_ajax' => admin_url( 'admin-ajax.php' ),
334 + 'recommended_nonce' => wp_create_nonce( 'jltwp_adminify_recommended_nonce' ),
335 + ) );
336 + }
199 337
200 - }
338 + // WP Adminify Options Page Style
339 + public function jltwp_adminify_admin_script() {
340 + 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>';
341 + }
201 342
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 - }
343 + // Styles & Scripts
344 + public static function jltwp_adminify_enqueue_scripts() {
345 + // Styles
346 + wp_register_style( 'wp-adminify-vegas', WP_ADMINIFY_ASSETS . 'vendors/vegas/vegas' . Utils::assets_ext( '.css' ) );
347 + // Icons
348 + wp_register_style(
349 + 'wp-adminify-simple-line-icons',
350 + WP_ADMINIFY_ASSETS . 'fonts/simple-line-icons/css/simple-line-icons' . Utils::assets_ext( '.css' ),
351 + false,
352 + WP_ADMINIFY_VER
353 + );
354 + wp_register_style(
355 + 'wp-adminify-icomoon',
356 + WP_ADMINIFY_ASSETS . 'fonts/icomoon/style' . Utils::assets_ext( '.css' ),
357 + false,
358 + WP_ADMINIFY_VER
359 + );
360 + wp_register_style(
361 + 'wp-adminify-themify-icons',
362 + WP_ADMINIFY_ASSETS . 'fonts/themify-icons/themify-icons' . Utils::assets_ext( '.css' ),
363 + false,
364 + WP_ADMINIFY_VER
365 + );
366 + // Scripts
367 + wp_register_script(
368 + 'wp-adminify-vegas',
369 + WP_ADMINIFY_ASSETS . 'vendors/vegas/vegas' . Utils::assets_ext( '.js' ),
370 + array('jquery'),
371 + WP_ADMINIFY_VER,
372 + true
373 + );
374 + wp_register_script(
375 + 'wp-adminify-vidim',
376 + WP_ADMINIFY_ASSETS . 'vendors/vidim/vidim' . Utils::assets_ext( '.js' ),
377 + array('jquery'),
378 + WP_ADMINIFY_VER,
379 + true
380 + );
381 + }
453 382
454 383 }