PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 4.0.1.2
Adminify – White Label, Admin Menu Editor, Login Customizer v4.0.1.2
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 +41 -566 4.2.224.0.1.2 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,175 +22,21 @@
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']); // TODO: comment because not product this issue. if we product this issue then think about why create this this and solve it all type of users
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() {
95 - $adminify_ui = AdminSettings::get_instance()->get( 'admin_ui' );
96 - if ( !empty( $adminify_ui ) ) {
97 - // Motopress Hotel Booking Lite
98 - if ( Utils::is_plugin_active( 'motopress-hotel-booking-lite/motopress-hotel-booking.php' ) ) {
99 - echo '<style>
100 - .wp-adminify.bookings_page_mphb_calendar .widefat thead th,
101 - .wp-adminify.bookings_page_mphb_calendar .widefat tfoot th,
102 - .wp-adminify.bookings_page_mphb_calendar .widefat tbody td {
103 - padding: 0 !important;
104 - }
105 - .adminify-ui .widefat tbody tr td:first-child {
106 - border-left-color: inherit !important;
107 - }
108 - </style>';
109 - }
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.
31 + public function jltwp_adminify_plugin_conflicts() {
32 + if ( Utils::is_plugin_active( 'squirrly-seo/squirrly.php' ) ) {
137 33 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
34 + .wp-adminify.adminify-ui.block-editor-page .interface-interface-skeleton {
35 + top: 0 !important;
152 36 }
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 - // WPML (sitepress-multilingual-cms) admin language switcher
164 - // (#WPML_ALS) is mirrored into the Adminify topbar. Its language
165 - // links otherwise switch inside the iframe, so the parent admin
166 - // chrome keeps the old language. Force a full top-window reload to
167 - // the chosen language URL so the whole admin re-renders.
168 - if ( Utils::is_plugin_active( 'sitepress-multilingual-cms/sitepress.php' ) ) {
169 - $pxlbsadminify_wpml_js = "(function(){document.addEventListener('click',function(e){var li=e.target&&e.target.closest&&e.target.closest('[id^=\"adminify-top-menu-WPML_ALS_\"]');if(!li)return;var a=li.querySelector('a')||(e.target.closest('a'));if(!a)return;var href=a.getAttribute('href')||a.href;if(!href||href==='#')return;e.preventDefault();e.stopPropagation();window.top.location.href=href;},true);}());";
170 - if ( function_exists( 'wp_print_inline_script_tag' ) ) {
171 - wp_print_inline_script_tag( $pxlbsadminify_wpml_js );
172 - } else {
173 - echo '<script>' . $pxlbsadminify_wpml_js . '</script>';
174 - // phpcs:ignore WordPress.WP.EnqueuedResources
175 - }
176 - }
37 + </style>';
177 38 }
178 - if ( Utils::is_plugin_active( 'squirrly-seo/squirrly.php' ) ) {
179 - // kept as-is for squirrly compat; the generic adminify-ui rule below covers all editor pages
180 - }
181 - if ( Utils::is_plugin_active( 'surecart/surecart.php' ) || Utils::is_plugin_active( 'suremember/suremember.php' ) ) {
182 - if ( !empty( $adminify_ui ) ) {
183 - echo '<style>
184 - .css-wa3qun,.backdrop-blur-sm {
185 - top: 0 !important;
186 - }
187 - #suremembers-settings-content::before, #sc-settings-content::before{
188 - width: 250px !important;
189 - }
190 - </style>';
191 - }
192 - }
193 39 if ( Utils::is_plugin_active( 'advanced-database-cleaner-pro/advanced-db-cleaner.php' ) ) {
194 40 echo '<style>
195 41 .wp-adminify.toplevel_page_advanced_db_cleaner #wpbody-content .wp-list-table.widefat td{
196 42 padding: 10px 10px;
@@ -200,231 +46,23 @@
200 46 line-height: inherit !important;
201 47 }
202 48 </style>';
203 49 }
204 - if ( Utils::is_plugin_active( 'insert-headers-and-footers/ihaf.php' ) ) {
205 - echo '<style>
206 - .wp-adminify .wpcode-code-type-picker, .wp-adminify .wpcode-code-type-picker-backdrop {
207 - left: 0;
208 - }
209 - </style>';
210 - }
211 - if ( Utils::is_plugin_active( 'advanced-access-manager/aam.php' ) ) {
212 - add_filter(
213 - 'pxlbsadminify_menu_option_compatibility_filter',
214 - array($this, 'apply_menu_restrictions_via_filter'),
215 - 10,
216 - 2
217 - );
218 - }
219 - if ( Utils::is_plugin_active( 'meta-box/meta-box.php' ) ) {
220 - echo '<style>
221 - .adminify-ui .og.mb {
222 - left: 0;
223 - }
224 - </style>';
225 - }
226 - if ( Utils::is_plugin_active( 'wp-security-audit-log/wp-security-audit-log.php' ) ) {
227 - echo '<script>
228 - jQuery(document).ready(function($) {
229 - $("body.wp-adminify.adminify-ui ul.frame-adminify-admin-menu li a .frame-adminify-menu-item-name").find("style").remove();
230 -
231 - setInterval(function() {
232 - $("body.wp-adminify.adminify-ui ul.frame-adminify-admin-menu li a .frame-adminify-menu-item-name").find("style").remove();
233 - }, 1000);
234 - });
235 - </script>';
236 - }
237 - if ( Utils::is_plugin_active( 'shopengine/shopengine.php' ) ) {
238 - global $pagenow;
239 - // e.g. "edit.php"
240 - // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- read-only check, no state change.
241 - $post_type = ( isset( $_GET['post_type'] ) ? sanitize_key( wp_unslash( $_GET['post_type'] ) ) : '' );
242 - // Build the slug
243 - $slug = ( $post_type ? "{$pagenow}?post_type={$post_type}" : $pagenow );
244 - // Example usage:
245 - if ( $slug === 'edit.php?post_type=shopengine-template' ) {
246 - echo '<style>
247 - #wpfooter {
248 - position: inherit !important;
249 - display: flex;
250 - flex-direction: column-reverse;
251 - }
252 - </style>';
253 - }
254 - }
255 - if ( Utils::is_plugin_active( 'breeze/breeze.php' ) ) {
256 - echo '<script>
257 - jQuery(document).ready(function($) {
258 -
259 - const iframe = document.getElementById("frame-adminify-app--iframe");
260 -
261 - const fileBtn = document.getElementById("adminify-top-menu-breeze-purge-file-group");
262 - const objectCacheBtn = document.getElementById("adminify-top-menu-breeze-purge-object-cache-group");
263 -
264 - if( fileBtn ) {
265 - fileBtn.addEventListener("click", function (e) {
266 - handleClickBreezeBtn("#wp-admin-bar-breeze-purge-file-group");
267 - });
268 - }
269 -
270 - if( objectCacheBtn ) {
271 - objectCacheBtn.addEventListener("click", function (e) {
272 - handleClickBreezeBtn("#wp-admin-bar-breeze-purge-object-cache-group");
273 - });
274 - }
275 -
276 - function handleClickBreezeBtn(selector) {
277 - try {
278 - const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
279 -
280 - // Find and click the button
281 - const button = iframeDoc.querySelector(selector);
282 - if (button) {
283 - button.click();
284 - }
285 - } catch (error) {
286 - console.error("Cannot access iframe content:", error);
287 - }
288 - }
289 - });
290 - </script>';
291 - }
292 - // Redis Object Cache plugin compatibility
293 - if ( Utils::is_plugin_active( 'redis-cache/redis-cache.php' ) ) {
294 - $nonce = wp_create_nonce();
295 - $ajaxurl = esc_url( admin_url( 'admin-ajax.php' ) );
296 - $flushingText = __( 'Flushing cache...', 'adminify' );
297 - echo '<script>
298 - jQuery(document).ready(function($) {
299 - const flushBtn = document.getElementById("adminify-top-menu-redis-cache-flush");
300 - const parentMenu = document.getElementById("adminify-top-menu-redis-cache");
301 -
302 - if (flushBtn) {
303 - const flushLink = flushBtn.querySelector("a");
304 -
305 - flushBtn.addEventListener("click", async function(e) {
306 - e.preventDefault();
307 - e.stopPropagation();
308 -
309 - if (!flushLink) return;
310 -
311 - // Store original text
312 - const originalText = flushLink.textContent || flushLink.innerText;
313 -
314 - // Close dropdown and show flushing text on parent menu
315 - const parentLink = parentMenu ? parentMenu.querySelector("a") : null;
316 - const parentOriginalHTML = parentLink ? parentLink.innerHTML : null;
317 -
318 - if (parentLink) {
319 - parentLink.innerHTML = "' . esc_js( $flushingText ) . '";
320 - }
321 -
322 - // Close dropdown
323 - const dropdown = flushBtn.closest(".adminify-dropdown");
324 - if (dropdown) {
325 - dropdown.classList.remove("show");
326 - }
327 -
328 - try {
329 - const data = new FormData();
330 - data.append("action", "roc_flush_cache");
331 - data.append("nonce", "' . esc_js( $nonce ) . '");
332 -
333 - const response = await fetch("' . esc_url( $ajaxurl ) . '", {
334 - method: "POST",
335 - body: data,
336 - });
337 -
338 - const resultText = await response.text();
339 -
340 - // Show result text
341 - if (parentLink) {
342 - parentLink.innerHTML = resultText;
343 - }
344 -
345 - // Reset to original after 3 seconds
346 - setTimeout(function() {
347 - if (parentLink && parentOriginalHTML) {
348 - parentLink.innerHTML = parentOriginalHTML;
349 - }
350 - }, 3000);
351 -
352 - } catch (error) {
353 - console.error("Object cache could not be flushed:", error);
354 - // Reset on error
355 - if (parentLink && parentOriginalHTML) {
356 - parentLink.innerHTML = parentOriginalHTML;
357 - }
358 - }
359 - });
360 - }
361 - });
362 - </script>';
363 - }
364 50 }
365 51
366 - public function apply_menu_restrictions_via_filter( $menu_options, $menu ) {
367 - $aam_options = get_option( 'aam_access_settings', [] );
368 - if ( is_array( $aam_options ) ) {
369 - $simplified_aam_option = $this->simplify_aam_menu_restriction( $aam_options );
370 - $menu_options = $this->update_aam_menu_option( $menu_options, $simplified_aam_option );
371 - }
372 - return $menu_options;
373 - }
374 -
375 - public function simplify_aam_menu_restriction( $aam_option ) {
376 - $simplified_aam_option = [];
377 - foreach ( $aam_option['role'] as $role => $aam_role ) {
378 - if ( !empty( $aam_role['menu'] ) ) {
379 - foreach ( $aam_role['menu'] as $menu_item => $value ) {
380 - if ( !$value ) {
381 - continue;
382 - }
383 - $menu_item = str_replace( 'menu-', '', $menu_item );
384 - if ( !isset( $simplified_aam_option[$menu_item] ) ) {
385 - $simplified_aam_option[$menu_item] = [];
386 - }
387 - $simplified_aam_option[$menu_item][] = $role;
388 - }
389 - }
390 - }
391 - return $simplified_aam_option;
392 - }
393 -
394 - public function update_aam_menu_option( $menu_options, $simplified_aam_option ) {
395 - foreach ( $menu_options as $key => $item ) {
396 - // If this menu item is in restricted list, update hidden_for
397 - if ( isset( $simplified_aam_option[$key] ) ) {
398 - if ( !isset( $item['hidden_for'] ) ) {
399 - $item['hidden_for'] = [];
400 - }
401 - $item['hidden_for'] = array_merge( $item['hidden_for'], $simplified_aam_option[$key] );
402 - $item['hidden_for'] = array_unique( $item['hidden_for'] );
403 - }
404 - // If submenu exists, apply the function recursively
405 - // if (isset($item['submenu']) && is_array($item['submenu'])) {
406 - // $item['submenu'] = update_aam_menu_option($item['submenu'], $simplified_aam_option);
407 - // }
408 - $menu_options[$key] = $item;
409 - }
410 - return $menu_options;
411 - }
412 -
413 - public function reset_theme_conflicts() {
52 + public function jltwp_adminify_reset_theme_conflicts() {
414 53 global $pagenow;
415 54 if ( $pagenow == 'wp-login.php' || $pagenow == 'wp-register.php' || $pagenow == 'customize.php' ) {
416 55 return;
417 56 }
418 - $screen = get_current_screen();
419 57 $theme = wp_get_theme();
420 58 // Neve WordPress Theme
421 59 if ( 'Neve' == $theme->name || 'Neve' == $theme->parent_theme ) {
422 60 wp_enqueue_style(
423 61 'wp-adminify_neve-theme',
424 - PXLBSADMINIFY_ASSETS . 'css/themes/neve.min.css',
62 + WP_ADMINIFY_ASSETS . 'css/themes/neve.min.css',
425 63 false,
426 - PXLBSADMINIFY_VER
64 + WP_ADMINIFY_VER
427 65 );
428 66 }
429 67 // Phlox WordPress Theme
430 68 if ( 'Phlox' == $theme->name || 'Phlox' == $theme->parent_theme ) {
@@ -441,70 +79,21 @@
441 79 display: none !important;
442 80 }
443 81 </style>';
444 82 }
445 - // BrightHub theme compatibility fix
446 - if ( 'BrightHub' == $theme->name || 'BrightHub' == $theme->parent_theme ) {
447 - echo '<style>
448 - body.wp-adminify.adminify-ui.wp-theme-brighthub #wpadminbar,
449 - body.wp-adminify.adminify-ui.wp-theme-brighthub #adminmenumain{
450 - display: none !important;
451 - }
452 - .adminify-toolbar-wrapper .adminify-toolbar ul.adminify-top-menu li.adminify-top-menu-item{
453 - display: flex;
454 - width: auto;
455 - justify-content: center;
456 - align-items: center;
457 - }
458 - </style>';
459 - echo '<script>
460 - document.addEventListener("DOMContentLoaded", function() {
461 - document.documentElement.setAttribute("frame-adminify-app", "true");
462 -
463 - var iframe = document.querySelector(".adminify-frame-wrapper iframe");
464 - if (iframe) {
465 - iframe.addEventListener("load", function() {
466 - try {
467 - iframe.contentDocument.documentElement.setAttribute("frame-adminify-iframe", "true");
468 - } catch(e) {
469 - console.log("Could not access iframe content");
470 - }
471 - });
472 -
473 - try {
474 - if (iframe.contentDocument && iframe.contentDocument.documentElement) {
475 - iframe.contentDocument.documentElement.setAttribute("frame-adminify-iframe", "true");
476 - }
477 - } catch(e) {
478 - // Cross-origin restrictions might prevent access
479 - }
480 - }
481 - });
482 - document.addEventListener("DOMContentLoaded", function() {
483 - var menuItems = document.querySelectorAll(".wp-adminify.adminify-ui .adminify-toolbar-wrapper .adminify-toolbar .adminify-top-menu li");
484 - menuItems.forEach(function(item) {
485 - var link = item.querySelector("a");
486 - var divInLink = item.querySelector("a > div");
487 - if (link && divInLink) {
488 - link.textContent = divInLink.textContent;
489 - }
490 - });
491 - });
492 - </script>';
493 - }
494 83 // Third Party Plugin CSS Conflict
495 - // $pxlbsadminify_plugin_conflict_css = '';
84 + // $jltwp_adminify_plugin_conflict_css = '';
496 85 // if (Utils::is_plugin_active('quillforms/quillforms.php')) {
497 - // $pxlbsadminify_plugin_conflict_css = '//css code here';
498 - // $pxlbsadminify_plugin_conflict_css = preg_replace('#/\*.*?\*/#s', '', $pxlbsadminify_plugin_conflict_css);
499 - // $pxlbsadminify_plugin_conflict_css = preg_replace('/\s*([{}|:;,])\s+/', '$1', $pxlbsadminify_plugin_conflict_css);
500 - // $pxlbsadminify_plugin_conflict_css = preg_replace('/\s\s+(.*)/', '$1', $pxlbsadminify_plugin_conflict_css);
86 + // $jltwp_adminify_plugin_conflict_css = '//css code here';
87 + // $jltwp_adminify_plugin_conflict_css = preg_replace('#/\*.*?\*/#s', '', $jltwp_adminify_plugin_conflict_css);
88 + // $jltwp_adminify_plugin_conflict_css = preg_replace('/\s*([{}|:;,])\s+/', '$1', $jltwp_adminify_plugin_conflict_css);
89 + // $jltwp_adminify_plugin_conflict_css = preg_replace('/\s\s+(.*)/', '$1', $jltwp_adminify_plugin_conflict_css);
501 90 // }
502 91 // $adminify_ui = AdminSettings::get_instance()->get('admin_ui');
503 92 // if (!empty($adminify_ui)) {
504 - // wp_add_inline_style('wp-adminify-admin', wp_strip_all_tags($pxlbsadminify_plugin_conflict_css));
93 + // wp_add_inline_style('wp-adminify-admin', wp_strip_all_tags($jltwp_adminify_plugin_conflict_css));
505 94 // } else {
506 - // wp_add_inline_style('wp-adminify-default-ui', wp_strip_all_tags($pxlbsadminify_plugin_conflict_css));
95 + // wp_add_inline_style('wp-adminify-default-ui', wp_strip_all_tags($jltwp_adminify_plugin_conflict_css));
507 96 // }
508 97 if ( Utils::is_plugin_active( 'stackable-ultimate-gutenberg-blocks-premium/plugin.php' ) ) {
509 98 echo '<style>
510 99 .wp-adminify.adminify-ui #wpcontent .wp-adminify.adminify-top_bar {
@@ -513,20 +102,13 @@
513 102 </style>';
514 103 }
515 104 if ( Utils::is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
516 105 echo '<style>
517 - .adminify-ui #woocommerce-embedded-root .woocommerce-layout__header, .adminify-ui .woocommerce-layout .woocommerce-layout__header {
518 - width: 100%;
519 - top: 0;
520 - }
521 - .adminify-ui #woocommerce-embedded-root .woocommerce-layout__header .woocommerce-layout__header-wrapper, .adminify-ui .woocommerce-layout .woocommerce-layout__header .woocommerce-layout__header-wrapper {
522 - margin-right: 1rem;
523 - }
524 - body.woocommerce-page #wpwrap #wpcontent,
525 - body.woocommerce-page.woocommerce_page_wc-admin #wpwrap #wpbody-content {
526 - overflow-x: unset !important;
527 - position: unset !important;
528 - }
106 + body.woocommerce-page #wpwrap #wpcontent,
107 + body.woocommerce-page.woocommerce_page_wc-admin #wpwrap #wpbody-content {
108 + overflow-x: unset !important;
109 + position: unset !important;
110 + }
529 111 </style>';
530 112 }
531 113 if ( Utils::is_plugin_active( 'tinymce-templates/tinymce-templates.php' ) ) {
532 114 echo '<style>#tinymce-templates-wrap #tinymce-templates-preview { height: 500px !important; }</style>';
@@ -543,13 +125,8 @@
543 125 }
544 126 body.wp-adminify-admin-bar.admin-bar #e-admin-top-bar-root .e-admin-top-bar{
545 127 padding-left: 20px;
546 128 }
547 -
548 - body.adminify-ui.e-has-sidebar-navigation #wpwrap #wpcontent #editor-one-top-bar > header {
549 - top: 0!important;
550 - }
551 - body.adminify-ui #wpbody-content #elementor-home-app main header {top: 0!important}
552 129 </style>';
553 130 }
554 131 if ( Utils::is_plugin_active( 'one-click-demo-import/one-click-demo-import.php' ) ) {
555 132 echo '<style>
@@ -558,9 +135,9 @@
558 135 }
559 136 </style>';
560 137 }
561 138 if ( Utils::is_plugin_active( 'wpforms-lite/wpforms.php' ) ) {
562 - if ( Utils::currentpage_id( 'dashboard' ) ) {
139 + if ( Utils::jltwp_adminify_currentpage_id( 'dashboard' ) ) {
563 140 wp_enqueue_style(
564 141 'wpforms-full',
565 142 WPFORMS_PLUGIN_URL . 'assets/css/frontend/classic/wpforms-full.css',
566 143 [],
@@ -623,83 +200,10 @@
623 200 padding: 0;
624 201 }
625 202 </style>';
626 203 }
627 - if ( Utils::is_plugin_active( 'email-template-customizer-for-woo/email-template-customizer-for-woo.php' ) ) {
628 - if ( $screen->id === 'edit-viwec_template' ) {
629 - echo '<style>
630 - #wpfooter{
631 - position: relative !important;
632 - display: flex;
633 - flex-direction: column-reverse;
634 - }
635 - </style>';
636 - }
637 - }
638 - if ( Utils::is_plugin_active( 'woocommerce-orders-tracking/woocommerce-orders-tracking.php' ) ) {
639 - if ( $screen->id === 'woocommerce_page_wc-orders' ) {
640 - echo '<style>
641 - #wpfooter{
642 - position: relative !important;
643 - display: block !important;
644 - flex-direction: column-reverse;
645 - }
646 - </style>';
647 - }
648 - }
649 - // Divi Theme - "Edit With Divi" link should reload parent page instead of iframe
650 - if ( 'Divi' == $theme->name || 'Divi' == $theme->parent_theme ) {
651 - echo '<script>
652 - document.addEventListener("DOMContentLoaded", function() {
653 - var iframe = document.getElementById("frame-adminify-app--iframe");
654 - if (!iframe) return;
655 -
656 - function handleDiviLinks(iframeDoc) {
657 - var diviLinks = iframeDoc.querySelectorAll("a[href*=\\"et_fb=1\\"], a.et_pb_toggle_builder_wrapper, a[href*=\\"page=et_divi_options\\"]");
658 - diviLinks.forEach(function(link) {
659 - link.addEventListener("click", function(e) {
660 - e.preventDefault();
661 - e.stopPropagation();
662 - window.top.location.href = link.href;
663 - });
664 - });
665 - }
666 -
667 - iframe.addEventListener("load", function() {
668 - try {
669 - var iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
670 - handleDiviLinks(iframeDoc);
671 -
672 - var observer = new MutationObserver(function() {
673 - handleDiviLinks(iframeDoc);
674 - });
675 - observer.observe(iframeDoc.body, { childList: true, subtree: true });
676 - } catch(e) {
677 - console.log("Divi compatibility: Cannot access iframe content");
678 - }
679 - });
680 - });
681 - </script>';
682 - echo '<style>
683 - #adminify-top-menu-et-builder-shortcode-framework,
684 - #adminify-top-menu-et-builder-shortcode-framework-loaded,
685 - #adminify-top-menu-et-builder-shortcode-framework-option,
686 - #adminify-top-menu-et-builder-shortcode-framework-constant,
687 - #adminify-top-menu-et-builder-shortcode-framework-hook,
688 - #adminify-top-menu-et-builder-shortcode-framework-constant-value {
689 - display: none;
690 - }
691 - </style>';
692 - }
693 - if ( Utils::is_plugin_active( 'js_composer/js_composer.php' ) ) {
694 - echo '<style>
695 - .adminify-ui .vc_dropdown-list-item p{
696 - color: #fff;
697 - }
698 - </style>';
699 - }
700 204 // Third Party localize script
701 - wp_localize_script( 'adminify-admin', 'PXLBSADMINIFY_THIRDPARTY', $this->thirdparty_create_js_object() );
205 + wp_localize_script( 'wp-adminify-admin', 'WPAdminify_ThirdParty', $this->thirdparty_create_js_object() );
702 206 }
703 207
704 208 public function thirdparty_create_js_object() {
705 209 // betterlinks menu settings
@@ -728,12 +232,11 @@
728 232 }
729 233
730 234 public function register_actions_on_init() {
731 235 // Brizy Builder
732 - // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- read-only check, no state change.
733 236 if ( isset( $_REQUEST['brizy-edit-iframe'] ) ) {
734 - add_filter( 'pxlbsadminify_defer_skip', '__return_true' );
735 - add_filter( 'pxlbsadminify_skip_removing_dashicons', '__return_true' );
237 + add_filter( 'wp_adminify_defer_skip', '__return_true' );
238 + add_filter( 'wp_adminify_skip_removing_dashicons', '__return_true' );
736 239 }
737 240 }
738 241
739 242 public function register_actions_on_admin_init() {
@@ -742,9 +245,9 @@
742 245 // Commented On: 24-3-24
743 246 add_action( 'admin_enqueue_scripts', [$this, 'enqueue_scripts'], 999 );
744 247 }
745 248 // Commented On: 10-6-24
746 - // add_filter('pxlbsadminify_third_party_styles', [$this, 'register_compatability_styles']);
249 + // add_filter('adminify_third_party_styles', [$this, 'register_compatability_styles']);
747 250 // Fluent CRM
748 251 add_action( 'fluentcrm_skip_no_conflict', '__return_true' );
749 252 // Fluent FORM
750 253 add_action( 'fluentform_skip_no_conflict', '__return_true' );
@@ -758,10 +261,10 @@
758 261 public function register_compatability_styles( $plugin_supports ) {
759 262 if ( !is_array( $plugin_supports ) ) {
760 263 $plugin_supports = [];
761 264 }
762 - $plugin_dir = PXLBSADMINIFY_ASSETS . 'css/plugins/';
763 - $plugin_files = list_files( PXLBSADMINIFY_PATH . 'assets/css/plugins/', 1 );
265 + $plugin_dir = WP_ADMINIFY_ASSETS . 'css/plugins/';
266 + $plugin_files = list_files( WP_ADMINIFY_PATH . 'assets/css/plugins/', 1 );
764 267 if ( !empty( $plugin_files ) ) {
765 268 foreach ( $plugin_files as $file ) {
766 269 $plugin_supports[wp_basename( $file, '.min.css' )] = $plugin_dir . wp_basename( $file );
767 270 }
@@ -775,9 +278,9 @@
775 278 * @return void
776 279 */
777 280 public function enqueue_scripts() {
778 281 $plugin_supports = [];
779 - $plugin_supports = apply_filters( 'pxlbsadminify_third_party_styles', $plugin_supports );
282 + $plugin_supports = apply_filters( 'adminify_third_party_styles', $plugin_supports );
780 283 // Check Plugin Activated for Site Wide
781 284 if ( is_multisite() ) {
782 285 $active_plugins = get_site_option( 'active_sitewide_plugins' );
783 286 foreach ( $active_plugins as $active_path => $active_plugin ) {
@@ -786,14 +289,14 @@
786 289 $pluginname = $string[0];
787 290 if ( isset( $plugin_supports[$pluginname] ) ) {
788 291 if ( $plugin_supports[$pluginname] != '' ) {
789 292 wp_register_style(
790 - 'adminify_site-wide_' . $pluginname . '_css',
293 + 'wp-adminify_site-wide_' . $pluginname . '_css',
791 294 $plugin_supports[$pluginname],
792 295 [],
793 - PXLBSADMINIFY_VER
296 + WP_ADMINIFY_VER
794 297 );
795 - wp_enqueue_style( 'adminify_site-wide_' . $pluginname . '_css' );
298 + wp_enqueue_style( 'wp-adminify_site-wide_' . $pluginname . '_css' );
796 299 }
797 300 }
798 301 }
799 302 }
@@ -806,45 +309,17 @@
806 309 $pluginname = $string[0];
807 310 if ( isset( $plugin_supports[$pluginname] ) ) {
808 311 if ( $plugin_supports[$pluginname] != '' ) {
809 312 wp_register_style(
810 - 'adminify_' . $pluginname . '_css',
313 + 'wp-adminify_' . $pluginname . '_css',
811 314 $plugin_supports[$pluginname],
812 315 [],
813 - PXLBSADMINIFY_VER
316 + WP_ADMINIFY_VER
814 317 );
815 - wp_enqueue_style( 'adminify_' . $pluginname . '_css' );
318 + wp_enqueue_style( 'wp-adminify_' . $pluginname . '_css' );
816 319 }
817 320 }
818 321 }
819 322 }
820 - }
821 -
822 - /**
823 - * Inject layout-tightening CSS INTO the WP 6.3+/7.0 block editor iframe canvas.
824 - *
825 - * The Gutenberg canvas runs inside an iframe; styles enqueued via
826 - * `enqueue_block_editor_assets` only reach the parent admin chrome. The
827 - * `block_editor_settings_all` `styles` array IS injected into the iframe.
828 - *
829 - * The default Gutenberg post-title wrapper carries large block padding which,
830 - * inside Adminify's iframe wrapper (already framed by topbar + sidebar),
831 - * reads as a huge dead area between the editor toolbar and "Add title".
832 - * Compress that wrapper + leading content padding so the title sits close
833 - * under the toolbar.
834 - */
835 - public function block_editor_iframe_layout_tweaks( $settings ) {
836 - // Iframe body padding (Gutenberg ~50-60px default) + root container's first-child
837 - // margin-block-start are the two real sources of the gap above "Add title".
838 - // Multiple selectors cover WP 6.x ("edit-post-*") and WP 7.0+ ("editor-*", new
839 - // "block-editor-iframe__body" body class on the iframe) class renames.
840 - $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;}';
841 - if ( !isset( $settings['styles'] ) || !is_array( $settings['styles'] ) ) {
842 - $settings['styles'] = array();
843 - }
844 - $settings['styles'][] = array(
845 - 'css' => $css,
846 - );
847 - return $settings;
848 323 }
849 324
850 325 }