PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 4.0.2.5
Adminify – White Label, Admin Menu Editor, Login Customizer v4.0.2.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/ThirdPartyCompatibility.php +44 -531 4.2.9 → 4.0.2.5 View file →
@@ -1,17 +1,17 @@
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\Modules\MenuEditor\MenuEditorOptions;
5 +use WPAdminify\Inc\Utils;
6 +use WPAdminify\Inc\Admin\AdminSettings;
7 +use WPAdminify\Inc\Modules\MenuEditor\MenuEditorOptions;
8 8 // no direct access allowed
9 9 if ( !defined( 'ABSPATH' ) ) {
10 10 exit;
11 11 }
12 12 /**
13 - * PXLBSAdminify
13 + * WPAdminify
14 14 * Third Party Plugins Compatibility
15 15 *
16 16 * @author Jewel Theme <[email protected]>
17 17 */
@@ -22,77 +22,14 @@
22 22 $this->menu_settings = ( new MenuEditorOptions() )->get();
23 23 add_action( 'init', [$this, 'register_actions_on_init'], 0 );
24 24 add_action( 'admin_init', [$this, 'register_actions_on_admin_init'], 0 );
25 25 // 24-3-24
26 - add_action( 'admin_enqueue_scripts', [$this, 'reset_theme_conflicts'], 999999 );
26 + add_action( 'admin_enqueue_scripts', [$this, 'jltwp_adminify_reset_theme_conflicts'], 999999 );
27 27 // 28-6-24
28 - add_action( 'admin_head', [$this, 'plugin_conflicts'], 999999 );
29 - // Inject layout-tightening CSS INTO the block editor iframe (parent CSS
30 - // cannot reach inside). Closes the huge top gap between the editor toolbar
31 - // and the post title that's amplified inside the Adminify iframe wrapper.
32 - add_filter( 'block_editor_settings_all', [$this, 'block_editor_iframe_layout_tweaks'] );
33 - if ( Utils::is_plugin_active( 'gravityforms/gravityforms.php' ) ) {
34 - add_filter(
35 - 'update_footer',
36 - [$this, 'change_admin_footer'],
37 - 9999,
38 - 3
39 - );
40 - }
41 - // All Fluent Plugin Assets Supports
42 - $this->whitelist_assets_in_fluent_plugins();
28 + add_action( 'admin_head', [$this, 'jltwp_adminify_plugin_conflicts'], 999999 );
43 29 }
44 30
45 - /**
46 - * Whitelist Adminify assets in Fluent ecosystem no-conflict mode.
47 - *
48 - * Fluent Boards, Fluent Booking, Fluent CRM, Fluent Community, Fluent Forms,
49 - * and Fluent Snippets (easy-code-manager) iterate $wp_scripts->queue on their
50 - * admin pages and dequeue every plugin script whose src isn't in their approved
51 - * slug list. Without this whitelist, Adminify's frame-adminify--admin script is
52 - * stripped, leaving an empty React mount (white screen).
53 - */
54 - public function whitelist_assets_in_fluent_plugins() {
55 - $add_regex = function ( $slugs ) {
56 - $slugs[] = '\\/adminify\\/';
57 - return $slugs;
58 - };
59 - if ( Utils::is_plugin_active( 'fluent-boards/fluent-boards.php' ) ) {
60 - add_filter( 'fluent_boards/asset_listed_slugs', $add_regex );
61 - }
62 - if ( Utils::is_plugin_active( 'fluent-booking/fluent-booking.php' ) ) {
63 - add_filter( 'fluent_booking/asset_listed_slugs', $add_regex );
64 - }
65 - if ( Utils::is_plugin_active( 'fluent-crm/fluent-crm.php' ) ) {
66 - add_filter( 'fluent_crm_asset_listed_slugs', $add_regex );
67 - }
68 - if ( Utils::is_plugin_active( 'fluent-community/fluent-community.php' ) ) {
69 - add_filter( 'fluent_community/asset_listed_slugs', $add_regex );
70 - add_filter( 'fluent_com_editor/asset_listed_slugs', $add_regex );
71 - }
72 - if ( Utils::is_plugin_active( 'easy-code-manager/easy-code-manager.php' ) ) {
73 - add_filter( 'fluent_snippets_asset_listed_slugs', $add_regex );
74 - }
75 - if ( Utils::is_plugin_active( 'fluentform/fluentform.php' ) ) {
76 - add_filter( 'fluentform/exclude_js_slugs_from_dequeue', function ( $slugs ) {
77 - $slugs[] = 'adminify';
78 - return $slugs;
79 - } );
80 - }
81 - }
82 -
83 - /**
84 - * Gravity Form Custom Footer missing div closing support
85 - */
86 - public function change_admin_footer( $footer_text ) {
87 - $current_screen = get_current_screen();
88 - if ( !empty( $current_screen ) && ($current_screen->id === 'toplevel_page_gf_edit_forms' || $current_screen->id === 'forms_page_gf_new_form') ) {
89 - return $footer_text . '</div>';
90 - }
91 - return $footer_text;
92 - }
93 -
94 - public function plugin_conflicts() {
31 + public function jltwp_adminify_plugin_conflicts() {
95 32 $adminify_ui = AdminSettings::get_instance()->get( 'admin_ui' );
96 33 if ( !empty( $adminify_ui ) ) {
97 34 // Motopress Hotel Booking Lite
98 35 if ( Utils::is_plugin_active( 'motopress-hotel-booking-lite/motopress-hotel-booking.php' ) ) {
@@ -106,76 +43,15 @@
106 43 border-left-color: inherit !important;
107 44 }
108 45 </style>';
109 46 }
110 - // Fluent Support
111 - if ( Utils::is_plugin_active( 'fluent-support/fluent-support.php' ) ) {
112 - echo '<style>
113 - body.adminify-ui .fs_main_navbar{width:100%;top:0;left:0;}
114 - </style>';
115 - }
116 - // Fluent Affiliate
117 - if ( Utils::is_plugin_active( 'fluent-affiliate/fluent-affiliate.php' ) ) {
118 - echo '<style>
119 - body.adminify-ui #fluent-affiliate-app #fa_aff_menu {top:0;}
120 - </style>';
121 - }
122 - // Fluent Cart
123 - if ( Utils::is_plugin_active( 'fluent-cart/fluent-cart.php' ) ) {
124 - echo '<style>
125 - body.adminify-ui #wpbody-content #fct_admin_menu_holder .fct_admin_menu_wrap {width:100%;top:0;left:0;}
126 - </style>';
127 - }
128 - // Fluent CRM
129 - if ( Utils::is_plugin_active( 'fluent-crm/fluent-crm.php' ) ) {
130 - echo '<style>
131 - .wp-adminify.adminify-ui .fcrm_topbar {top:0;}
132 - </style>';
133 - }
134 - // WP 7.0+ Command Palette: kill the focus border on the cmdk input
135 - // (Adminify UI input styles bleed in) and wire the Adminify topbar
136 - // item (#adminify-top-menu-command-palette) to open the palette.
137 - echo '<style>
138 - .wp-adminify .commands-command-menu__container input[cmdk-input],
139 - .wp-adminify .commands-command-menu__container input[cmdk-input]:focus,
140 - .wp-adminify .commands-command-menu__container input[cmdk-input]:focus-visible {
141 - border: 0 !important;
142 - outline: 0 !important;
143 - box-shadow: none !important;
144 - }
145 - </style>';
146 - $pxlbsadminify_cmdk_js = "(function(){function openCmd(){try{if(window.wp&&wp.data&&wp.data.dispatch('core/commands')){wp.data.dispatch('core/commands').open();return;}}catch(e){}var isMac=/Mac|iPod|iPhone|iPad/.test(navigator.platform);document.dispatchEvent(new KeyboardEvent('keydown',{key:'k',code:'KeyK',keyCode:75,which:75,ctrlKey:!isMac,metaKey:isMac,bubbles:true,cancelable:true}));}document.addEventListener('click',function(e){var t=e.target&&e.target.closest&&e.target.closest('#adminify-top-menu-command-palette a, .adminify-top-menu-command-palette a');if(!t)return;e.preventDefault();openCmd();});}());";
147 - if ( function_exists( 'wp_print_inline_script_tag' ) ) {
148 - wp_print_inline_script_tag( $pxlbsadminify_cmdk_js );
149 - } else {
150 - echo '<script>' . $pxlbsadminify_cmdk_js . '</script>';
151 - // phpcs:ignore WordPress.WP.EnqueuedResources
152 - }
153 - // WP 7.0 block editor interface skeleton: pin to 0/0 inside Adminify UI.
154 - // WP's default left/top offsets are for the WP admin bar + sidebar which
155 - // Adminify hides — without this, the editor shifts off-origin.
156 - echo '<style>
157 - body.wp-adminify.adminify-ui .editor-editor-interface.edit-post-layout.interface-interface-skeleton,
158 - body.wp-adminify.adminify-ui .interface-interface-skeleton {
159 - left: 0 !important;
160 - top: 0 !important;
161 - }
162 - </style>';
163 47 }
164 48 if ( Utils::is_plugin_active( 'squirrly-seo/squirrly.php' ) ) {
165 - // kept as-is for squirrly compat; the generic adminify-ui rule below covers all editor pages
166 - }
167 - if ( Utils::is_plugin_active( 'surecart/surecart.php' ) || Utils::is_plugin_active( 'suremember/suremember.php' ) ) {
168 - if ( !empty( $adminify_ui ) ) {
169 - echo '<style>
170 - .css-wa3qun,.backdrop-blur-sm {
171 - top: 0 !important;
172 - }
173 - #suremembers-settings-content::before, #sc-settings-content::before{
174 - width: 250px !important;
175 - }
176 - </style>';
49 + echo '<style>
50 + .wp-adminify.adminify-ui.block-editor-page .interface-interface-skeleton {
51 + top: 0 !important;
177 52 }
53 + </style>';
178 54 }
179 55 if ( Utils::is_plugin_active( 'advanced-database-cleaner-pro/advanced-db-cleaner.php' ) ) {
180 56 echo '<style>
181 57 .wp-adminify.toplevel_page_advanced_db_cleaner #wpbody-content .wp-list-table.widefat td{
@@ -186,231 +62,23 @@
186 62 line-height: inherit !important;
187 63 }
188 64 </style>';
189 65 }
190 - if ( Utils::is_plugin_active( 'insert-headers-and-footers/ihaf.php' ) ) {
191 - echo '<style>
192 - .wp-adminify .wpcode-code-type-picker, .wp-adminify .wpcode-code-type-picker-backdrop {
193 - left: 0;
194 - }
195 - </style>';
196 - }
197 - if ( Utils::is_plugin_active( 'advanced-access-manager/aam.php' ) ) {
198 - add_filter(
199 - 'pxlbsadminify_menu_option_compatibility_filter',
200 - array($this, 'apply_menu_restrictions_via_filter'),
201 - 10,
202 - 2
203 - );
204 - }
205 - if ( Utils::is_plugin_active( 'meta-box/meta-box.php' ) ) {
206 - echo '<style>
207 - .adminify-ui .og.mb {
208 - left: 0;
209 - }
210 - </style>';
211 - }
212 - if ( Utils::is_plugin_active( 'wp-security-audit-log/wp-security-audit-log.php' ) ) {
213 - echo '<script>
214 - jQuery(document).ready(function($) {
215 - $("body.wp-adminify.adminify-ui ul.frame-adminify-admin-menu li a .frame-adminify-menu-item-name").find("style").remove();
216 -
217 - setInterval(function() {
218 - $("body.wp-adminify.adminify-ui ul.frame-adminify-admin-menu li a .frame-adminify-menu-item-name").find("style").remove();
219 - }, 1000);
220 - });
221 - </script>';
222 - }
223 - if ( Utils::is_plugin_active( 'shopengine/shopengine.php' ) ) {
224 - global $pagenow;
225 - // e.g. "edit.php"
226 - // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- read-only check, no state change.
227 - $post_type = ( isset( $_GET['post_type'] ) ? sanitize_key( wp_unslash( $_GET['post_type'] ) ) : '' );
228 - // Build the slug
229 - $slug = ( $post_type ? "{$pagenow}?post_type={$post_type}" : $pagenow );
230 - // Example usage:
231 - if ( $slug === 'edit.php?post_type=shopengine-template' ) {
232 - echo '<style>
233 - #wpfooter {
234 - position: inherit !important;
235 - display: flex;
236 - flex-direction: column-reverse;
237 - }
238 - </style>';
239 - }
240 - }
241 - if ( Utils::is_plugin_active( 'breeze/breeze.php' ) ) {
242 - echo '<script>
243 - jQuery(document).ready(function($) {
244 -
245 - const iframe = document.getElementById("frame-adminify-app--iframe");
246 -
247 - const fileBtn = document.getElementById("adminify-top-menu-breeze-purge-file-group");
248 - const objectCacheBtn = document.getElementById("adminify-top-menu-breeze-purge-object-cache-group");
249 -
250 - if( fileBtn ) {
251 - fileBtn.addEventListener("click", function (e) {
252 - handleClickBreezeBtn("#wp-admin-bar-breeze-purge-file-group");
253 - });
254 - }
255 -
256 - if( objectCacheBtn ) {
257 - objectCacheBtn.addEventListener("click", function (e) {
258 - handleClickBreezeBtn("#wp-admin-bar-breeze-purge-object-cache-group");
259 - });
260 - }
261 -
262 - function handleClickBreezeBtn(selector) {
263 - try {
264 - const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
265 -
266 - // Find and click the button
267 - const button = iframeDoc.querySelector(selector);
268 - if (button) {
269 - button.click();
270 - }
271 - } catch (error) {
272 - console.error("Cannot access iframe content:", error);
273 - }
274 - }
275 - });
276 - </script>';
277 - }
278 - // Redis Object Cache plugin compatibility
279 - if ( Utils::is_plugin_active( 'redis-cache/redis-cache.php' ) ) {
280 - $nonce = wp_create_nonce();
281 - $ajaxurl = esc_url( admin_url( 'admin-ajax.php' ) );
282 - $flushingText = __( 'Flushing cache...', 'adminify' );
283 - echo '<script>
284 - jQuery(document).ready(function($) {
285 - const flushBtn = document.getElementById("adminify-top-menu-redis-cache-flush");
286 - const parentMenu = document.getElementById("adminify-top-menu-redis-cache");
287 -
288 - if (flushBtn) {
289 - const flushLink = flushBtn.querySelector("a");
290 -
291 - flushBtn.addEventListener("click", async function(e) {
292 - e.preventDefault();
293 - e.stopPropagation();
294 -
295 - if (!flushLink) return;
296 -
297 - // Store original text
298 - const originalText = flushLink.textContent || flushLink.innerText;
299 -
300 - // Close dropdown and show flushing text on parent menu
301 - const parentLink = parentMenu ? parentMenu.querySelector("a") : null;
302 - const parentOriginalHTML = parentLink ? parentLink.innerHTML : null;
303 -
304 - if (parentLink) {
305 - parentLink.innerHTML = "' . esc_js( $flushingText ) . '";
306 - }
307 -
308 - // Close dropdown
309 - const dropdown = flushBtn.closest(".adminify-dropdown");
310 - if (dropdown) {
311 - dropdown.classList.remove("show");
312 - }
313 -
314 - try {
315 - const data = new FormData();
316 - data.append("action", "roc_flush_cache");
317 - data.append("nonce", "' . esc_js( $nonce ) . '");
318 -
319 - const response = await fetch("' . esc_url( $ajaxurl ) . '", {
320 - method: "POST",
321 - body: data,
322 - });
323 -
324 - const resultText = await response.text();
325 -
326 - // Show result text
327 - if (parentLink) {
328 - parentLink.innerHTML = resultText;
329 - }
330 -
331 - // Reset to original after 3 seconds
332 - setTimeout(function() {
333 - if (parentLink && parentOriginalHTML) {
334 - parentLink.innerHTML = parentOriginalHTML;
335 - }
336 - }, 3000);
337 -
338 - } catch (error) {
339 - console.error("Object cache could not be flushed:", error);
340 - // Reset on error
341 - if (parentLink && parentOriginalHTML) {
342 - parentLink.innerHTML = parentOriginalHTML;
343 - }
344 - }
345 - });
346 - }
347 - });
348 - </script>';
349 - }
350 66 }
351 67
352 - public function apply_menu_restrictions_via_filter( $menu_options, $menu ) {
353 - $aam_options = get_option( 'aam_access_settings', [] );
354 - if ( is_array( $aam_options ) ) {
355 - $simplified_aam_option = $this->simplify_aam_menu_restriction( $aam_options );
356 - $menu_options = $this->update_aam_menu_option( $menu_options, $simplified_aam_option );
357 - }
358 - return $menu_options;
359 - }
360 -
361 - public function simplify_aam_menu_restriction( $aam_option ) {
362 - $simplified_aam_option = [];
363 - foreach ( $aam_option['role'] as $role => $aam_role ) {
364 - if ( !empty( $aam_role['menu'] ) ) {
365 - foreach ( $aam_role['menu'] as $menu_item => $value ) {
366 - if ( !$value ) {
367 - continue;
368 - }
369 - $menu_item = str_replace( 'menu-', '', $menu_item );
370 - if ( !isset( $simplified_aam_option[$menu_item] ) ) {
371 - $simplified_aam_option[$menu_item] = [];
372 - }
373 - $simplified_aam_option[$menu_item][] = $role;
374 - }
375 - }
376 - }
377 - return $simplified_aam_option;
378 - }
379 -
380 - public function update_aam_menu_option( $menu_options, $simplified_aam_option ) {
381 - foreach ( $menu_options as $key => $item ) {
382 - // If this menu item is in restricted list, update hidden_for
383 - if ( isset( $simplified_aam_option[$key] ) ) {
384 - if ( !isset( $item['hidden_for'] ) ) {
385 - $item['hidden_for'] = [];
386 - }
387 - $item['hidden_for'] = array_merge( $item['hidden_for'], $simplified_aam_option[$key] );
388 - $item['hidden_for'] = array_unique( $item['hidden_for'] );
389 - }
390 - // If submenu exists, apply the function recursively
391 - // if (isset($item['submenu']) && is_array($item['submenu'])) {
392 - // $item['submenu'] = update_aam_menu_option($item['submenu'], $simplified_aam_option);
393 - // }
394 - $menu_options[$key] = $item;
395 - }
396 - return $menu_options;
397 - }
398 -
399 - public function reset_theme_conflicts() {
68 + public function jltwp_adminify_reset_theme_conflicts() {
400 69 global $pagenow;
401 70 if ( $pagenow == 'wp-login.php' || $pagenow == 'wp-register.php' || $pagenow == 'customize.php' ) {
402 71 return;
403 72 }
404 - $screen = get_current_screen();
405 73 $theme = wp_get_theme();
406 74 // Neve WordPress Theme
407 75 if ( 'Neve' == $theme->name || 'Neve' == $theme->parent_theme ) {
408 76 wp_enqueue_style(
409 77 'wp-adminify_neve-theme',
410 - PXLBSADMINIFY_ASSETS . 'css/themes/neve.min.css',
78 + WP_ADMINIFY_ASSETS . 'css/themes/neve.min.css',
411 79 false,
412 - PXLBSADMINIFY_VER
80 + WP_ADMINIFY_VER
413 81 );
414 82 }
415 83 // Phlox WordPress Theme
416 84 if ( 'Phlox' == $theme->name || 'Phlox' == $theme->parent_theme ) {
@@ -427,70 +95,21 @@
427 95 display: none !important;
428 96 }
429 97 </style>';
430 98 }
431 - // BrightHub theme compatibility fix
432 - if ( 'BrightHub' == $theme->name || 'BrightHub' == $theme->parent_theme ) {
433 - echo '<style>
434 - body.wp-adminify.adminify-ui.wp-theme-brighthub #wpadminbar,
435 - body.wp-adminify.adminify-ui.wp-theme-brighthub #adminmenumain{
436 - display: none !important;
437 - }
438 - .adminify-toolbar-wrapper .adminify-toolbar ul.adminify-top-menu li.adminify-top-menu-item{
439 - display: flex;
440 - width: auto;
441 - justify-content: center;
442 - align-items: center;
443 - }
444 - </style>';
445 - echo '<script>
446 - document.addEventListener("DOMContentLoaded", function() {
447 - document.documentElement.setAttribute("frame-adminify-app", "true");
448 -
449 - var iframe = document.querySelector(".adminify-frame-wrapper iframe");
450 - if (iframe) {
451 - iframe.addEventListener("load", function() {
452 - try {
453 - iframe.contentDocument.documentElement.setAttribute("frame-adminify-iframe", "true");
454 - } catch(e) {
455 - console.log("Could not access iframe content");
456 - }
457 - });
458 -
459 - try {
460 - if (iframe.contentDocument && iframe.contentDocument.documentElement) {
461 - iframe.contentDocument.documentElement.setAttribute("frame-adminify-iframe", "true");
462 - }
463 - } catch(e) {
464 - // Cross-origin restrictions might prevent access
465 - }
466 - }
467 - });
468 - document.addEventListener("DOMContentLoaded", function() {
469 - var menuItems = document.querySelectorAll(".wp-adminify.adminify-ui .adminify-toolbar-wrapper .adminify-toolbar .adminify-top-menu li");
470 - menuItems.forEach(function(item) {
471 - var link = item.querySelector("a");
472 - var divInLink = item.querySelector("a > div");
473 - if (link && divInLink) {
474 - link.textContent = divInLink.textContent;
475 - }
476 - });
477 - });
478 - </script>';
479 - }
480 99 // Third Party Plugin CSS Conflict
481 - // $pxlbsadminify_plugin_conflict_css = '';
100 + // $jltwp_adminify_plugin_conflict_css = '';
482 101 // if (Utils::is_plugin_active('quillforms/quillforms.php')) {
483 - // $pxlbsadminify_plugin_conflict_css = '//css code here';
484 - // $pxlbsadminify_plugin_conflict_css = preg_replace('#/\*.*?\*/#s', '', $pxlbsadminify_plugin_conflict_css);
485 - // $pxlbsadminify_plugin_conflict_css = preg_replace('/\s*([{}|:;,])\s+/', '$1', $pxlbsadminify_plugin_conflict_css);
486 - // $pxlbsadminify_plugin_conflict_css = preg_replace('/\s\s+(.*)/', '$1', $pxlbsadminify_plugin_conflict_css);
102 + // $jltwp_adminify_plugin_conflict_css = '//css code here';
103 + // $jltwp_adminify_plugin_conflict_css = preg_replace('#/\*.*?\*/#s', '', $jltwp_adminify_plugin_conflict_css);
104 + // $jltwp_adminify_plugin_conflict_css = preg_replace('/\s*([{}|:;,])\s+/', '$1', $jltwp_adminify_plugin_conflict_css);
105 + // $jltwp_adminify_plugin_conflict_css = preg_replace('/\s\s+(.*)/', '$1', $jltwp_adminify_plugin_conflict_css);
487 106 // }
488 107 // $adminify_ui = AdminSettings::get_instance()->get('admin_ui');
489 108 // if (!empty($adminify_ui)) {
490 - // wp_add_inline_style('wp-adminify-admin', wp_strip_all_tags($pxlbsadminify_plugin_conflict_css));
109 + // wp_add_inline_style('wp-adminify-admin', wp_strip_all_tags($jltwp_adminify_plugin_conflict_css));
491 110 // } else {
492 - // wp_add_inline_style('wp-adminify-default-ui', wp_strip_all_tags($pxlbsadminify_plugin_conflict_css));
111 + // wp_add_inline_style('wp-adminify-default-ui', wp_strip_all_tags($jltwp_adminify_plugin_conflict_css));
493 112 // }
494 113 if ( Utils::is_plugin_active( 'stackable-ultimate-gutenberg-blocks-premium/plugin.php' ) ) {
495 114 echo '<style>
496 115 .wp-adminify.adminify-ui #wpcontent .wp-adminify.adminify-top_bar {
@@ -499,20 +118,20 @@
499 118 </style>';
500 119 }
501 120 if ( Utils::is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
502 121 echo '<style>
503 - .adminify-ui #woocommerce-embedded-root .woocommerce-layout__header, .adminify-ui .woocommerce-layout .woocommerce-layout__header {
122 + .adminify-ui #woocommerce-embedded-root .woocommerce-layout__header {
504 123 width: 100%;
505 - top: 0;
124 + top: 0;
506 125 }
507 - .adminify-ui #woocommerce-embedded-root .woocommerce-layout__header .woocommerce-layout__header-wrapper, .adminify-ui .woocommerce-layout .woocommerce-layout__header .woocommerce-layout__header-wrapper {
126 + .adminify-ui #woocommerce-embedded-root .woocommerce-layout__header .woocommerce-layout__header-wrapper {
508 127 margin-right: 1rem;
509 128 }
510 - body.woocommerce-page #wpwrap #wpcontent,
511 - body.woocommerce-page.woocommerce_page_wc-admin #wpwrap #wpbody-content {
512 - overflow-x: unset !important;
513 - position: unset !important;
514 - }
129 + body.woocommerce-page #wpwrap #wpcontent,
130 + body.woocommerce-page.woocommerce_page_wc-admin #wpwrap #wpbody-content {
131 + overflow-x: unset !important;
132 + position: unset !important;
133 + }
515 134 </style>';
516 135 }
517 136 if ( Utils::is_plugin_active( 'tinymce-templates/tinymce-templates.php' ) ) {
518 137 echo '<style>#tinymce-templates-wrap #tinymce-templates-preview { height: 500px !important; }</style>';
@@ -529,12 +148,8 @@
529 148 }
530 149 body.wp-adminify-admin-bar.admin-bar #e-admin-top-bar-root .e-admin-top-bar{
531 150 padding-left: 20px;
532 151 }
533 -
534 - body.adminify-ui.e-has-sidebar-navigation #wpwrap #wpcontent #editor-one-top-bar > header {
535 - top: 0!important;
536 - }
537 152 </style>';
538 153 }
539 154 if ( Utils::is_plugin_active( 'one-click-demo-import/one-click-demo-import.php' ) ) {
540 155 echo '<style>
@@ -543,9 +158,9 @@
543 158 }
544 159 </style>';
545 160 }
546 161 if ( Utils::is_plugin_active( 'wpforms-lite/wpforms.php' ) ) {
547 - if ( Utils::currentpage_id( 'dashboard' ) ) {
162 + if ( Utils::jltwp_adminify_currentpage_id( 'dashboard' ) ) {
548 163 wp_enqueue_style(
549 164 'wpforms-full',
550 165 WPFORMS_PLUGIN_URL . 'assets/css/frontend/classic/wpforms-full.css',
551 166 [],
@@ -608,83 +223,10 @@
608 223 padding: 0;
609 224 }
610 225 </style>';
611 226 }
612 - if ( Utils::is_plugin_active( 'email-template-customizer-for-woo/email-template-customizer-for-woo.php' ) ) {
613 - if ( $screen->id === 'edit-viwec_template' ) {
614 - echo '<style>
615 - #wpfooter{
616 - position: relative !important;
617 - display: flex;
618 - flex-direction: column-reverse;
619 - }
620 - </style>';
621 - }
622 - }
623 - if ( Utils::is_plugin_active( 'woocommerce-orders-tracking/woocommerce-orders-tracking.php' ) ) {
624 - if ( $screen->id === 'woocommerce_page_wc-orders' ) {
625 - echo '<style>
626 - #wpfooter{
627 - position: relative !important;
628 - display: block !important;
629 - flex-direction: column-reverse;
630 - }
631 - </style>';
632 - }
633 - }
634 - // Divi Theme - "Edit With Divi" link should reload parent page instead of iframe
635 - if ( 'Divi' == $theme->name || 'Divi' == $theme->parent_theme ) {
636 - echo '<script>
637 - document.addEventListener("DOMContentLoaded", function() {
638 - var iframe = document.getElementById("frame-adminify-app--iframe");
639 - if (!iframe) return;
640 -
641 - function handleDiviLinks(iframeDoc) {
642 - var diviLinks = iframeDoc.querySelectorAll("a[href*=\\"et_fb=1\\"], a.et_pb_toggle_builder_wrapper, a[href*=\\"page=et_divi_options\\"]");
643 - diviLinks.forEach(function(link) {
644 - link.addEventListener("click", function(e) {
645 - e.preventDefault();
646 - e.stopPropagation();
647 - window.top.location.href = link.href;
648 - });
649 - });
650 - }
651 -
652 - iframe.addEventListener("load", function() {
653 - try {
654 - var iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
655 - handleDiviLinks(iframeDoc);
656 -
657 - var observer = new MutationObserver(function() {
658 - handleDiviLinks(iframeDoc);
659 - });
660 - observer.observe(iframeDoc.body, { childList: true, subtree: true });
661 - } catch(e) {
662 - console.log("Divi compatibility: Cannot access iframe content");
663 - }
664 - });
665 - });
666 - </script>';
667 - echo '<style>
668 - #adminify-top-menu-et-builder-shortcode-framework,
669 - #adminify-top-menu-et-builder-shortcode-framework-loaded,
670 - #adminify-top-menu-et-builder-shortcode-framework-option,
671 - #adminify-top-menu-et-builder-shortcode-framework-constant,
672 - #adminify-top-menu-et-builder-shortcode-framework-hook,
673 - #adminify-top-menu-et-builder-shortcode-framework-constant-value {
674 - display: none;
675 - }
676 - </style>';
677 - }
678 - if ( Utils::is_plugin_active( 'js_composer/js_composer.php' ) ) {
679 - echo '<style>
680 - .adminify-ui .vc_dropdown-list-item p{
681 - color: #fff;
682 - }
683 - </style>';
684 - }
685 227 // Third Party localize script
686 - wp_localize_script( 'adminify-admin', 'PXLBSADMINIFY_THIRDPARTY', $this->thirdparty_create_js_object() );
228 + wp_localize_script( 'wp-adminify-admin', 'WPAdminify_ThirdParty', $this->thirdparty_create_js_object() );
687 229 }
688 230
689 231 public function thirdparty_create_js_object() {
690 232 // betterlinks menu settings
@@ -713,12 +255,11 @@
713 255 }
714 256
715 257 public function register_actions_on_init() {
716 258 // Brizy Builder
717 - // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- read-only check, no state change.
718 259 if ( isset( $_REQUEST['brizy-edit-iframe'] ) ) {
719 - add_filter( 'pxlbsadminify_defer_skip', '__return_true' );
720 - add_filter( 'pxlbsadminify_skip_removing_dashicons', '__return_true' );
260 + add_filter( 'wp_adminify_defer_skip', '__return_true' );
261 + add_filter( 'wp_adminify_skip_removing_dashicons', '__return_true' );
721 262 }
722 263 }
723 264
724 265 public function register_actions_on_admin_init() {
@@ -727,9 +268,9 @@
727 268 // Commented On: 24-3-24
728 269 add_action( 'admin_enqueue_scripts', [$this, 'enqueue_scripts'], 999 );
729 270 }
730 271 // Commented On: 10-6-24
731 - // add_filter('pxlbsadminify_third_party_styles', [$this, 'register_compatability_styles']);
272 + // add_filter('adminify_third_party_styles', [$this, 'register_compatability_styles']);
732 273 // Fluent CRM
733 274 add_action( 'fluentcrm_skip_no_conflict', '__return_true' );
734 275 // Fluent FORM
735 276 add_action( 'fluentform_skip_no_conflict', '__return_true' );
@@ -743,10 +284,10 @@
743 284 public function register_compatability_styles( $plugin_supports ) {
744 285 if ( !is_array( $plugin_supports ) ) {
745 286 $plugin_supports = [];
746 287 }
747 - $plugin_dir = PXLBSADMINIFY_ASSETS . 'css/plugins/';
748 - $plugin_files = list_files( PXLBSADMINIFY_PATH . 'assets/css/plugins/', 1 );
288 + $plugin_dir = WP_ADMINIFY_ASSETS . 'css/plugins/';
289 + $plugin_files = list_files( WP_ADMINIFY_PATH . 'assets/css/plugins/', 1 );
749 290 if ( !empty( $plugin_files ) ) {
750 291 foreach ( $plugin_files as $file ) {
751 292 $plugin_supports[wp_basename( $file, '.min.css' )] = $plugin_dir . wp_basename( $file );
752 293 }
@@ -760,9 +301,9 @@
760 301 * @return void
761 302 */
762 303 public function enqueue_scripts() {
763 304 $plugin_supports = [];
764 - $plugin_supports = apply_filters( 'pxlbsadminify_third_party_styles', $plugin_supports );
305 + $plugin_supports = apply_filters( 'adminify_third_party_styles', $plugin_supports );
765 306 // Check Plugin Activated for Site Wide
766 307 if ( is_multisite() ) {
767 308 $active_plugins = get_site_option( 'active_sitewide_plugins' );
768 309 foreach ( $active_plugins as $active_path => $active_plugin ) {
@@ -771,14 +312,14 @@
771 312 $pluginname = $string[0];
772 313 if ( isset( $plugin_supports[$pluginname] ) ) {
773 314 if ( $plugin_supports[$pluginname] != '' ) {
774 315 wp_register_style(
775 - 'adminify_site-wide_' . $pluginname . '_css',
316 + 'wp-adminify_site-wide_' . $pluginname . '_css',
776 317 $plugin_supports[$pluginname],
777 318 [],
778 - PXLBSADMINIFY_VER
319 + WP_ADMINIFY_VER
779 320 );
780 - wp_enqueue_style( 'adminify_site-wide_' . $pluginname . '_css' );
321 + wp_enqueue_style( 'wp-adminify_site-wide_' . $pluginname . '_css' );
781 322 }
782 323 }
783 324 }
784 325 }
@@ -791,45 +332,17 @@
791 332 $pluginname = $string[0];
792 333 if ( isset( $plugin_supports[$pluginname] ) ) {
793 334 if ( $plugin_supports[$pluginname] != '' ) {
794 335 wp_register_style(
795 - 'adminify_' . $pluginname . '_css',
336 + 'wp-adminify_' . $pluginname . '_css',
796 337 $plugin_supports[$pluginname],
797 338 [],
798 - PXLBSADMINIFY_VER
339 + WP_ADMINIFY_VER
799 340 );
800 - wp_enqueue_style( 'adminify_' . $pluginname . '_css' );
341 + wp_enqueue_style( 'wp-adminify_' . $pluginname . '_css' );
801 342 }
802 343 }
803 344 }
804 345 }
805 - }
806 -
807 - /**
808 - * Inject layout-tightening CSS INTO the WP 6.3+/7.0 block editor iframe canvas.
809 - *
810 - * The Gutenberg canvas runs inside an iframe; styles enqueued via
811 - * `enqueue_block_editor_assets` only reach the parent admin chrome. The
812 - * `block_editor_settings_all` `styles` array IS injected into the iframe.
813 - *
814 - * The default Gutenberg post-title wrapper carries large block padding which,
815 - * inside Adminify's iframe wrapper (already framed by topbar + sidebar),
816 - * reads as a huge dead area between the editor toolbar and "Add title".
817 - * Compress that wrapper + leading content padding so the title sits close
818 - * under the toolbar.
819 - */
820 - public function block_editor_iframe_layout_tweaks( $settings ) {
821 - // Iframe body padding (Gutenberg ~50-60px default) + root container's first-child
822 - // margin-block-start are the two real sources of the gap above "Add title".
823 - // Multiple selectors cover WP 6.x ("edit-post-*") and WP 7.0+ ("editor-*", new
824 - // "block-editor-iframe__body" body class on the iframe) class renames.
825 - $css = 'html body.block-editor-iframe__body,' . 'html body.editor-styles-wrapper,' . '.block-editor-iframe__body,' . '.editor-styles-wrapper{padding-top:12px !important;margin-top:0 !important;}' . '.is-root-container,' . '.editor-styles-wrapper>.is-root-container,' . '.block-editor-block-list__layout.is-root-container,' . '.is-root-container.is-layout-flow,' . '.is-root-container.is-layout-constrained{padding-top:0 !important;margin-top:0 !important;}' . '.is-root-container>*:first-child,' . '.is-root-container>[data-block]:first-child,' . '.editor-styles-wrapper>[data-block]:first-child,' . '.editor-styles-wrapper>.wp-block:first-child{margin-block-start:0 !important;margin-top:0 !important;padding-top:0 !important;}' . '.wp-block-post-title,' . 'h1.wp-block-post-title,' . '.editor-post-title,' . 'h1.editor-post-title,' . '.editor-post-title__input,' . 'h1.editor-post-title__input{margin:0 !important;margin-block-start:0 !important;padding-top:0 !important;}' . '.edit-post-visual-editor,' . '.editor-visual-editor,' . '.edit-post-visual-editor__post-title-wrapper,' . '.editor-visual-editor__post-title-wrapper,' . '.edit-post-visual-editor__content-area,' . '.editor-visual-editor__content-area{padding-top:0 !important;margin-top:0 !important;}';
826 - if ( !isset( $settings['styles'] ) || !is_array( $settings['styles'] ) ) {
827 - $settings['styles'] = array();
828 - }
829 - $settings['styles'][] = array(
830 - 'css' => $css,
831 - );
832 - return $settings;
833 346 }
834 347
835 348 }