PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 4.0.5.4
Adminify – White Label, Admin Menu Editor, Login Customizer v4.0.5.4
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 +40 -410 4.3.24.0.5.4 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 <support@jeweltheme.com>
17 17 */
@@ -22,133 +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']); // 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 - // YITH Plugin Framework panels rendered on WP list pages.
42 - add_action( 'in_admin_header', [$this, 'reorder_notice_wrapper_for_yith_panel'], 0 );
43 - // All Fluent Plugin Assets Supports
44 - $this->whitelist_assets_in_fluent_plugins();
28 + add_action( 'admin_head', [$this, 'jltwp_adminify_plugin_conflicts'], 999999 );
45 29 }
46 30
47 - /**
48 - * Whitelist Adminify assets in Fluent ecosystem no-conflict mode.
49 - *
50 - * Fluent Boards, Fluent Booking, Fluent CRM, Fluent Community, Fluent Forms,
51 - * and Fluent Snippets (easy-code-manager) iterate $wp_scripts->queue on their
52 - * admin pages and dequeue every plugin script whose src isn't in their approved
53 - * slug list. Without this whitelist, Adminify's frame-adminify--admin script is
54 - * stripped, leaving an empty React mount (white screen).
55 - */
56 - public function whitelist_assets_in_fluent_plugins() {
57 - $add_regex = function ( $slugs ) {
58 - $slugs[] = '\\/adminify\\/';
59 - return $slugs;
60 - };
61 - if ( Utils::is_plugin_active( 'fluent-boards/fluent-boards.php' ) ) {
62 - add_filter( 'fluent_boards/asset_listed_slugs', $add_regex );
63 - }
64 - if ( Utils::is_plugin_active( 'fluent-booking/fluent-booking.php' ) ) {
65 - add_filter( 'fluent_booking/asset_listed_slugs', $add_regex );
66 - }
67 - if ( Utils::is_plugin_active( 'fluent-crm/fluent-crm.php' ) ) {
68 - add_filter( 'fluent_crm_asset_listed_slugs', $add_regex );
69 - }
70 - if ( Utils::is_plugin_active( 'fluent-community/fluent-community.php' ) ) {
71 - add_filter( 'fluent_community/asset_listed_slugs', $add_regex );
72 - add_filter( 'fluent_com_editor/asset_listed_slugs', $add_regex );
73 - }
74 - if ( Utils::is_plugin_active( 'easy-code-manager/easy-code-manager.php' ) ) {
75 - add_filter( 'fluent_snippets_asset_listed_slugs', $add_regex );
76 - }
77 - if ( Utils::is_plugin_active( 'fluentform/fluentform.php' ) ) {
78 - add_filter( 'fluentform/exclude_js_slugs_from_dequeue', function ( $slugs ) {
79 - $slugs[] = 'adminify';
80 - return $slugs;
81 - } );
82 - }
83 - }
84 -
85 - /**
86 - * Gravity Form Custom Footer missing div closing support
87 - */
88 - public function change_admin_footer( $footer_text ) {
89 - $current_screen = get_current_screen();
90 - if ( !empty( $current_screen ) && ($current_screen->id === 'toplevel_page_gf_edit_forms' || $current_screen->id === 'forms_page_gf_new_form') ) {
91 - return $footer_text . '</div>';
92 - }
93 - return $footer_text;
94 - }
95 -
96 - /**
97 - * YITH Plugin Framework panel pages (YITH WooCommerce Multi Vendor, Booking,
98 - * Membership, ... — anything using plugin-fw) render blank while the
99 - * "Hide Admin Notices" option is on.
100 - *
101 - * YIT_Plugin_Panel::print_panel_tabs_in_wp_pages() hooks all_admin_notices at
102 - * priority 10 and opens page wrapper <div>s on purpose — they stay open until
103 - * admin_footer. Adminify closes its own .adminify-notices-wrapper on
104 - * all_admin_notices at priority 99999999, so that </div> lands inside YITH's
105 - * markup and closes YITH's .wrap instead. The notice wrapper then never closes
106 - * and swallows the rest of the page, which Adminify hides through
107 - * `.adminify-notices-wrapper > *:not(...) { display: none !important; }`.
108 - *
109 - * Fix: close the notice wrapper before YITH opens its own markup, so both
110 - * outputs stay balanced. Notices printed after that point are not wrapped,
111 - * which costs nothing here — plugin-fw moves every notice into its own
112 - * #yith-plugin-fw__panel__notices box with JS on these screens anyway.
113 - *
114 - * @return void
115 - */
116 - public function reorder_notice_wrapper_for_yith_panel() {
117 - global $wp_filter;
118 - if ( empty( $wp_filter['all_admin_notices'] ) || empty( $wp_filter['all_admin_notices']->callbacks ) ) {
119 - return;
120 - }
121 - $hooked_callbacks = $wp_filter['all_admin_notices']->callbacks;
122 - // Priority YITH opens its unclosed page wrapper at, if it does at all.
123 - $yith_priority = null;
124 - foreach ( $hooked_callbacks as $priority => $callbacks ) {
125 - foreach ( $callbacks as $callback ) {
126 - if ( is_array( $callback['function'] ) && isset( $callback['function'][1] ) && 'print_panel_tabs_in_wp_pages' === $callback['function'][1] ) {
127 - $yith_priority = (int) $priority;
128 - break 2;
129 - }
130 - }
131 - }
132 - // No YITH panel on this screen, or no room left to close before it.
133 - if ( null === $yith_priority || $yith_priority < 1 ) {
134 - return;
135 - }
136 - // Move Adminify's notice wrapper closer ahead of YITH's opening markup.
137 - foreach ( $hooked_callbacks as $priority => $callbacks ) {
138 - if ( (int) $priority <= $yith_priority ) {
139 - continue;
140 - }
141 - foreach ( $callbacks as $callback ) {
142 - if ( is_array( $callback['function'] ) && isset( $callback['function'][1] ) && 'finish_notice_capture' === $callback['function'][1] ) {
143 - remove_action( 'all_admin_notices', $callback['function'], $priority );
144 - add_action( 'all_admin_notices', $callback['function'], $yith_priority - 1 );
145 - }
146 - }
147 - }
148 - }
149 -
150 - public function plugin_conflicts() {
31 + public function jltwp_adminify_plugin_conflicts() {
151 32 $adminify_ui = AdminSettings::get_instance()->get( 'admin_ui' );
152 33 if ( !empty( $adminify_ui ) ) {
153 34 // Motopress Hotel Booking Lite
154 35 if ( Utils::is_plugin_active( 'motopress-hotel-booking-lite/motopress-hotel-booking.php' ) ) {
@@ -162,80 +43,17 @@
162 43 border-left-color: inherit !important;
163 44 }
164 45 </style>';
165 46 }
166 - // Fluent Support
167 - if ( Utils::is_plugin_active( 'fluent-support/fluent-support.php' ) ) {
168 - echo '<style>
169 - body.adminify-ui .fs_main_navbar{width:100%;top:0;left:0;}
170 - </style>';
171 - }
172 - // Fluent Affiliate
173 - if ( Utils::is_plugin_active( 'fluent-affiliate/fluent-affiliate.php' ) ) {
174 - echo '<style>
175 - body.adminify-ui #fluent-affiliate-app #fa_aff_menu {top:0;}
176 - </style>';
177 - }
178 - // Fluent Cart
179 - if ( Utils::is_plugin_active( 'fluent-cart/fluent-cart.php' ) ) {
180 - echo '<style>
181 - body.adminify-ui #wpbody-content #fct_admin_menu_holder .fct_admin_menu_wrap {width:100%;top:0;left:0;}
182 - </style>';
183 - }
184 - // Fluent CRM
185 - if ( Utils::is_plugin_active( 'fluent-crm/fluent-crm.php' ) ) {
186 - echo '<style>
187 - .wp-adminify.adminify-ui .fcrm_topbar {top:0;}
188 - </style>';
189 - }
190 - // WP 7.0+ Command Palette: kill the focus border on the cmdk input
191 - // (Adminify UI input styles bleed in) and wire the Adminify topbar
192 - // item (#adminify-top-menu-command-palette) to open the palette.
47 + }
48 + if ( Utils::is_plugin_active( 'squirrly-seo/squirrly.php' ) ) {
193 49 echo '<style>
194 - .wp-adminify .commands-command-menu__container input[cmdk-input],
195 - .wp-adminify .commands-command-menu__container input[cmdk-input]:focus,
196 - .wp-adminify .commands-command-menu__container input[cmdk-input]:focus-visible {
197 - border: 0 !important;
198 - outline: 0 !important;
199 - box-shadow: none !important;
200 - }
201 - </style>';
202 - $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();});}());";
203 - if ( function_exists( 'wp_print_inline_script_tag' ) ) {
204 - wp_print_inline_script_tag( $pxlbsadminify_cmdk_js );
205 - } else {
206 - echo '<script>' . $pxlbsadminify_cmdk_js . '</script>';
207 - // phpcs:ignore WordPress.WP.EnqueuedResources
50 + .wp-adminify.adminify-ui.block-editor-page .interface-interface-skeleton {
51 + top: 0 !important;
208 52 }
209 - // WP 7.0 block editor interface skeleton: pin to 0/0 inside Adminify UI.
210 - // WP's default left/top offsets are for the WP admin bar + sidebar which
211 - // Adminify hides — without this, the editor shifts off-origin.
212 - echo '<style>
213 - body.wp-adminify.adminify-ui .editor-editor-interface.edit-post-layout.interface-interface-skeleton,
214 - body.wp-adminify.adminify-ui .interface-interface-skeleton {
215 - left: 0 !important;
216 - top: 0 !important;
217 - }
218 - </style>';
219 - // WPML (sitepress-multilingual-cms) admin language switcher
220 - // (#WPML_ALS) is mirrored into the Adminify topbar. Its language
221 - // links otherwise switch inside the iframe, so the parent admin
222 - // chrome keeps the old language. Force a full top-window reload to
223 - // the chosen language URL so the whole admin re-renders.
224 - if ( Utils::is_plugin_active( 'sitepress-multilingual-cms/sitepress.php' ) ) {
225 - $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);}());";
226 - if ( function_exists( 'wp_print_inline_script_tag' ) ) {
227 - wp_print_inline_script_tag( $pxlbsadminify_wpml_js );
228 - } else {
229 - echo '<script>' . $pxlbsadminify_wpml_js . '</script>';
230 - // phpcs:ignore WordPress.WP.EnqueuedResources
231 - }
232 - }
53 + </style>';
233 54 }
234 - if ( Utils::is_plugin_active( 'squirrly-seo/squirrly.php' ) ) {
235 - // kept as-is for squirrly compat; the generic adminify-ui rule below covers all editor pages
236 - }
237 - if ( Utils::is_plugin_active( 'surecart/surecart.php' ) || Utils::is_plugin_active( 'suremember/suremember.php' ) ) {
55 + if ( Utils::is_plugin_active( 'surecart / surecart.php' ) || Utils::is_plugin_active( 'suremember/suremember.php' ) ) {
238 56 if ( !empty( $adminify_ui ) ) {
239 57 echo '<style>
240 58 .css-wa3qun,.backdrop-blur-sm {
241 59 top: 0 !important;
@@ -265,9 +83,9 @@
265 83 </style>';
266 84 }
267 85 if ( Utils::is_plugin_active( 'advanced-access-manager/aam.php' ) ) {
268 86 add_filter(
269 - 'pxlbsadminify_menu_option_compatibility_filter',
87 + 'jltwp_adminify_menu_option_compatibility_filter',
270 88 array($this, 'apply_menu_restrictions_via_filter'),
271 89 10,
272 90 2
273 91 );
@@ -292,10 +110,9 @@
292 110 }
293 111 if ( Utils::is_plugin_active( 'shopengine/shopengine.php' ) ) {
294 112 global $pagenow;
295 113 // e.g. "edit.php"
296 - // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- read-only check, no state change.
297 - $post_type = ( isset( $_GET['post_type'] ) ? sanitize_key( wp_unslash( $_GET['post_type'] ) ) : '' );
114 + $post_type = ( isset( $_GET['post_type'] ) ? sanitize_key( $_GET['post_type'] ) : '' );
298 115 // Build the slug
299 116 $slug = ( $post_type ? "{$pagenow}?post_type={$post_type}" : $pagenow );
300 117 // Example usage:
301 118 if ( $slug === 'edit.php?post_type=shopengine-template' ) {
@@ -307,117 +124,8 @@
307 124 }
308 125 </style>';
309 126 }
310 127 }
311 - if ( Utils::is_plugin_active( 'breeze/breeze.php' ) ) {
312 - echo '<script>
313 - jQuery(document).ready(function($) {
314 -
315 - const iframe = document.getElementById("frame-adminify-app--iframe");
316 -
317 - const fileBtn = document.getElementById("adminify-top-menu-breeze-purge-file-group");
318 - const objectCacheBtn = document.getElementById("adminify-top-menu-breeze-purge-object-cache-group");
319 -
320 - if( fileBtn ) {
321 - fileBtn.addEventListener("click", function (e) {
322 - handleClickBreezeBtn("#wp-admin-bar-breeze-purge-file-group");
323 - });
324 - }
325 -
326 - if( objectCacheBtn ) {
327 - objectCacheBtn.addEventListener("click", function (e) {
328 - handleClickBreezeBtn("#wp-admin-bar-breeze-purge-object-cache-group");
329 - });
330 - }
331 -
332 - function handleClickBreezeBtn(selector) {
333 - try {
334 - const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
335 -
336 - // Find and click the button
337 - const button = iframeDoc.querySelector(selector);
338 - if (button) {
339 - button.click();
340 - }
341 - } catch (error) {
342 - console.error("Cannot access iframe content:", error);
343 - }
344 - }
345 - });
346 - </script>';
347 - }
348 - // Redis Object Cache plugin compatibility
349 - if ( Utils::is_plugin_active( 'redis-cache/redis-cache.php' ) ) {
350 - $nonce = wp_create_nonce();
351 - $ajaxurl = esc_url( admin_url( 'admin-ajax.php' ) );
352 - $flushingText = __( 'Flushing cache...', 'adminify' );
353 - echo '<script>
354 - jQuery(document).ready(function($) {
355 - const flushBtn = document.getElementById("adminify-top-menu-redis-cache-flush");
356 - const parentMenu = document.getElementById("adminify-top-menu-redis-cache");
357 -
358 - if (flushBtn) {
359 - const flushLink = flushBtn.querySelector("a");
360 -
361 - flushBtn.addEventListener("click", async function(e) {
362 - e.preventDefault();
363 - e.stopPropagation();
364 -
365 - if (!flushLink) return;
366 -
367 - // Store original text
368 - const originalText = flushLink.textContent || flushLink.innerText;
369 -
370 - // Close dropdown and show flushing text on parent menu
371 - const parentLink = parentMenu ? parentMenu.querySelector("a") : null;
372 - const parentOriginalHTML = parentLink ? parentLink.innerHTML : null;
373 -
374 - if (parentLink) {
375 - parentLink.innerHTML = "' . esc_js( $flushingText ) . '";
376 - }
377 -
378 - // Close dropdown
379 - const dropdown = flushBtn.closest(".adminify-dropdown");
380 - if (dropdown) {
381 - dropdown.classList.remove("show");
382 - }
383 -
384 - try {
385 - const data = new FormData();
386 - data.append("action", "roc_flush_cache");
387 - data.append("nonce", "' . esc_js( $nonce ) . '");
388 -
389 - const response = await fetch("' . esc_url( $ajaxurl ) . '", {
390 - method: "POST",
391 - body: data,
392 - });
393 -
394 - const resultText = await response.text();
395 -
396 - // Show result text
397 - if (parentLink) {
398 - parentLink.innerHTML = resultText;
399 - }
400 -
401 - // Reset to original after 3 seconds
402 - setTimeout(function() {
403 - if (parentLink && parentOriginalHTML) {
404 - parentLink.innerHTML = parentOriginalHTML;
405 - }
406 - }, 3000);
407 -
408 - } catch (error) {
409 - console.error("Object cache could not be flushed:", error);
410 - // Reset on error
411 - if (parentLink && parentOriginalHTML) {
412 - parentLink.innerHTML = parentOriginalHTML;
413 - }
414 - }
415 - });
416 - }
417 - });
418 - </script>';
419 - }
420 128 }
421 129
422 130 public function apply_menu_restrictions_via_filter( $menu_options, $menu ) {
423 131 $aam_options = get_option( 'aam_access_settings', [] );
@@ -465,9 +173,9 @@
465 173 }
466 174 return $menu_options;
467 175 }
468 176
469 - public function reset_theme_conflicts() {
177 + public function jltwp_adminify_reset_theme_conflicts() {
470 178 global $pagenow;
471 179 if ( $pagenow == 'wp-login.php' || $pagenow == 'wp-register.php' || $pagenow == 'customize.php' ) {
472 180 return;
473 181 }
@@ -476,11 +184,11 @@
476 184 // Neve WordPress Theme
477 185 if ( 'Neve' == $theme->name || 'Neve' == $theme->parent_theme ) {
478 186 wp_enqueue_style(
479 187 'wp-adminify_neve-theme',
480 - PXLBSADMINIFY_ASSETS . 'css/themes/neve.min.css',
188 + WP_ADMINIFY_ASSETS . 'css/themes/neve.min.css',
481 189 false,
482 - PXLBSADMINIFY_VER
190 + WP_ADMINIFY_VER
483 191 );
484 192 }
485 193 // Phlox WordPress Theme
486 194 if ( 'Phlox' == $theme->name || 'Phlox' == $theme->parent_theme ) {
@@ -547,20 +255,20 @@
547 255 });
548 256 </script>';
549 257 }
550 258 // Third Party Plugin CSS Conflict
551 - // $pxlbsadminify_plugin_conflict_css = '';
259 + // $jltwp_adminify_plugin_conflict_css = '';
552 260 // if (Utils::is_plugin_active('quillforms/quillforms.php')) {
553 - // $pxlbsadminify_plugin_conflict_css = '//css code here';
554 - // $pxlbsadminify_plugin_conflict_css = preg_replace('#/\*.*?\*/#s', '', $pxlbsadminify_plugin_conflict_css);
555 - // $pxlbsadminify_plugin_conflict_css = preg_replace('/\s*([{}|:;,])\s+/', '$1', $pxlbsadminify_plugin_conflict_css);
556 - // $pxlbsadminify_plugin_conflict_css = preg_replace('/\s\s+(.*)/', '$1', $pxlbsadminify_plugin_conflict_css);
261 + // $jltwp_adminify_plugin_conflict_css = '//css code here';
262 + // $jltwp_adminify_plugin_conflict_css = preg_replace('#/\*.*?\*/#s', '', $jltwp_adminify_plugin_conflict_css);
263 + // $jltwp_adminify_plugin_conflict_css = preg_replace('/\s*([{}|:;,])\s+/', '$1', $jltwp_adminify_plugin_conflict_css);
264 + // $jltwp_adminify_plugin_conflict_css = preg_replace('/\s\s+(.*)/', '$1', $jltwp_adminify_plugin_conflict_css);
557 265 // }
558 266 // $adminify_ui = AdminSettings::get_instance()->get('admin_ui');
559 267 // if (!empty($adminify_ui)) {
560 - // wp_add_inline_style('wp-adminify-admin', wp_strip_all_tags($pxlbsadminify_plugin_conflict_css));
268 + // wp_add_inline_style('wp-adminify-admin', wp_strip_all_tags($jltwp_adminify_plugin_conflict_css));
561 269 // } else {
562 - // wp_add_inline_style('wp-adminify-default-ui', wp_strip_all_tags($pxlbsadminify_plugin_conflict_css));
270 + // wp_add_inline_style('wp-adminify-default-ui', wp_strip_all_tags($jltwp_adminify_plugin_conflict_css));
563 271 // }
564 272 if ( Utils::is_plugin_active( 'stackable-ultimate-gutenberg-blocks-premium/plugin.php' ) ) {
565 273 echo '<style>
566 274 .wp-adminify.adminify-ui #wpcontent .wp-adminify.adminify-top_bar {
@@ -599,13 +307,8 @@
599 307 }
600 308 body.wp-adminify-admin-bar.admin-bar #e-admin-top-bar-root .e-admin-top-bar{
601 309 padding-left: 20px;
602 310 }
603 -
604 - body.adminify-ui.e-has-sidebar-navigation #wpwrap #wpcontent #editor-one-top-bar > header {
605 - top: 0!important;
606 - }
607 - body.adminify-ui #wpbody-content #elementor-home-app main header {top: 0!important}
608 311 </style>';
609 312 }
610 313 if ( Utils::is_plugin_active( 'one-click-demo-import/one-click-demo-import.php' ) ) {
611 314 echo '<style>
@@ -614,9 +317,9 @@
614 317 }
615 318 </style>';
616 319 }
617 320 if ( Utils::is_plugin_active( 'wpforms-lite/wpforms.php' ) ) {
618 - if ( Utils::currentpage_id( 'dashboard' ) ) {
321 + if ( Utils::jltwp_adminify_currentpage_id( 'dashboard' ) ) {
619 322 wp_enqueue_style(
620 323 'wpforms-full',
621 324 WPFORMS_PLUGIN_URL . 'assets/css/frontend/classic/wpforms-full.css',
622 325 [],
@@ -701,52 +404,8 @@
701 404 }
702 405 </style>';
703 406 }
704 407 }
705 - // Divi Theme - "Edit With Divi" link should reload parent page instead of iframe
706 - if ( 'Divi' == $theme->name || 'Divi' == $theme->parent_theme ) {
707 - echo '<script>
708 - document.addEventListener("DOMContentLoaded", function() {
709 - var iframe = document.getElementById("frame-adminify-app--iframe");
710 - if (!iframe) return;
711 -
712 - function handleDiviLinks(iframeDoc) {
713 - var diviLinks = iframeDoc.querySelectorAll("a[href*=\\"et_fb=1\\"], a.et_pb_toggle_builder_wrapper, a[href*=\\"page=et_divi_options\\"]");
714 - diviLinks.forEach(function(link) {
715 - link.addEventListener("click", function(e) {
716 - e.preventDefault();
717 - e.stopPropagation();
718 - window.top.location.href = link.href;
719 - });
720 - });
721 - }
722 -
723 - iframe.addEventListener("load", function() {
724 - try {
725 - var iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
726 - handleDiviLinks(iframeDoc);
727 -
728 - var observer = new MutationObserver(function() {
729 - handleDiviLinks(iframeDoc);
730 - });
731 - observer.observe(iframeDoc.body, { childList: true, subtree: true });
732 - } catch(e) {
733 - console.log("Divi compatibility: Cannot access iframe content");
734 - }
735 - });
736 - });
737 - </script>';
738 - echo '<style>
739 - #adminify-top-menu-et-builder-shortcode-framework,
740 - #adminify-top-menu-et-builder-shortcode-framework-loaded,
741 - #adminify-top-menu-et-builder-shortcode-framework-option,
742 - #adminify-top-menu-et-builder-shortcode-framework-constant,
743 - #adminify-top-menu-et-builder-shortcode-framework-hook,
744 - #adminify-top-menu-et-builder-shortcode-framework-constant-value {
745 - display: none;
746 - }
747 - </style>';
748 - }
749 408 if ( Utils::is_plugin_active( 'js_composer/js_composer.php' ) ) {
750 409 echo '<style>
751 410 .adminify-ui .vc_dropdown-list-item p{
752 411 color: #fff;
@@ -753,9 +412,9 @@
753 412 }
754 413 </style>';
755 414 }
756 415 // Third Party localize script
757 - wp_localize_script( 'adminify-admin', 'PXLBSADMINIFY_THIRDPARTY', $this->thirdparty_create_js_object() );
416 + wp_localize_script( 'wp-adminify-admin', 'WPAdminify_ThirdParty', $this->thirdparty_create_js_object() );
758 417 }
759 418
760 419 public function thirdparty_create_js_object() {
761 420 // betterlinks menu settings
@@ -784,12 +443,11 @@
784 443 }
785 444
786 445 public function register_actions_on_init() {
787 446 // Brizy Builder
788 - // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- read-only check, no state change.
789 447 if ( isset( $_REQUEST['brizy-edit-iframe'] ) ) {
790 - add_filter( 'pxlbsadminify_defer_skip', '__return_true' );
791 - add_filter( 'pxlbsadminify_skip_removing_dashicons', '__return_true' );
448 + add_filter( 'wp_adminify_defer_skip', '__return_true' );
449 + add_filter( 'wp_adminify_skip_removing_dashicons', '__return_true' );
792 450 }
793 451 }
794 452
795 453 public function register_actions_on_admin_init() {
@@ -798,9 +456,9 @@
798 456 // Commented On: 24-3-24
799 457 add_action( 'admin_enqueue_scripts', [$this, 'enqueue_scripts'], 999 );
800 458 }
801 459 // Commented On: 10-6-24
802 - // add_filter('pxlbsadminify_third_party_styles', [$this, 'register_compatability_styles']);
460 + // add_filter('adminify_third_party_styles', [$this, 'register_compatability_styles']);
803 461 // Fluent CRM
804 462 add_action( 'fluentcrm_skip_no_conflict', '__return_true' );
805 463 // Fluent FORM
806 464 add_action( 'fluentform_skip_no_conflict', '__return_true' );
@@ -814,10 +472,10 @@
814 472 public function register_compatability_styles( $plugin_supports ) {
815 473 if ( !is_array( $plugin_supports ) ) {
816 474 $plugin_supports = [];
817 475 }
818 - $plugin_dir = PXLBSADMINIFY_ASSETS . 'css/plugins/';
819 - $plugin_files = list_files( PXLBSADMINIFY_PATH . 'assets/css/plugins/', 1 );
476 + $plugin_dir = WP_ADMINIFY_ASSETS . 'css/plugins/';
477 + $plugin_files = list_files( WP_ADMINIFY_PATH . 'assets/css/plugins/', 1 );
820 478 if ( !empty( $plugin_files ) ) {
821 479 foreach ( $plugin_files as $file ) {
822 480 $plugin_supports[wp_basename( $file, '.min.css' )] = $plugin_dir . wp_basename( $file );
823 481 }
@@ -831,9 +489,9 @@
831 489 * @return void
832 490 */
833 491 public function enqueue_scripts() {
834 492 $plugin_supports = [];
835 - $plugin_supports = apply_filters( 'pxlbsadminify_third_party_styles', $plugin_supports );
493 + $plugin_supports = apply_filters( 'adminify_third_party_styles', $plugin_supports );
836 494 // Check Plugin Activated for Site Wide
837 495 if ( is_multisite() ) {
838 496 $active_plugins = get_site_option( 'active_sitewide_plugins' );
839 497 foreach ( $active_plugins as $active_path => $active_plugin ) {
@@ -842,14 +500,14 @@
842 500 $pluginname = $string[0];
843 501 if ( isset( $plugin_supports[$pluginname] ) ) {
844 502 if ( $plugin_supports[$pluginname] != '' ) {
845 503 wp_register_style(
846 - 'adminify_site-wide_' . $pluginname . '_css',
504 + 'wp-adminify_site-wide_' . $pluginname . '_css',
847 505 $plugin_supports[$pluginname],
848 506 [],
849 - PXLBSADMINIFY_VER
507 + WP_ADMINIFY_VER
850 508 );
851 - wp_enqueue_style( 'adminify_site-wide_' . $pluginname . '_css' );
509 + wp_enqueue_style( 'wp-adminify_site-wide_' . $pluginname . '_css' );
852 510 }
853 511 }
854 512 }
855 513 }
@@ -862,45 +520,17 @@
862 520 $pluginname = $string[0];
863 521 if ( isset( $plugin_supports[$pluginname] ) ) {
864 522 if ( $plugin_supports[$pluginname] != '' ) {
865 523 wp_register_style(
866 - 'adminify_' . $pluginname . '_css',
524 + 'wp-adminify_' . $pluginname . '_css',
867 525 $plugin_supports[$pluginname],
868 526 [],
869 - PXLBSADMINIFY_VER
527 + WP_ADMINIFY_VER
870 528 );
871 - wp_enqueue_style( 'adminify_' . $pluginname . '_css' );
529 + wp_enqueue_style( 'wp-adminify_' . $pluginname . '_css' );
872 530 }
873 531 }
874 532 }
875 533 }
876 - }
877 -
878 - /**
879 - * Inject layout-tightening CSS INTO the WP 6.3+/7.0 block editor iframe canvas.
880 - *
881 - * The Gutenberg canvas runs inside an iframe; styles enqueued via
882 - * `enqueue_block_editor_assets` only reach the parent admin chrome. The
883 - * `block_editor_settings_all` `styles` array IS injected into the iframe.
884 - *
885 - * The default Gutenberg post-title wrapper carries large block padding which,
886 - * inside Adminify's iframe wrapper (already framed by topbar + sidebar),
887 - * reads as a huge dead area between the editor toolbar and "Add title".
888 - * Compress that wrapper + leading content padding so the title sits close
889 - * under the toolbar.
890 - */
891 - public function block_editor_iframe_layout_tweaks( $settings ) {
892 - // Iframe body padding (Gutenberg ~50-60px default) + root container's first-child
893 - // margin-block-start are the two real sources of the gap above "Add title".
894 - // Multiple selectors cover WP 6.x ("edit-post-*") and WP 7.0+ ("editor-*", new
895 - // "block-editor-iframe__body" body class on the iframe) class renames.
896 - $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;}';
897 - if ( !isset( $settings['styles'] ) || !is_array( $settings['styles'] ) ) {
898 - $settings['styles'] = array();
899 - }
900 - $settings['styles'][] = array(
901 - 'css' => $css,
902 - );
903 - return $settings;
904 534 }
905 535
906 536 }