PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 4.0.4.6
Adminify – White Label, Admin Menu Editor, Login Customizer v4.0.4.6
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 4.1.17 All 164 releases
adminify / Inc / Classes / ThirdPartyCompatibility.php

ThirdPartyCompatibility.php in Adminify – White Label, Admin Menu Editor, Login Customizer 4.0.4.6, at Inc/Classes/ThirdPartyCompatibility.php

423 lines 18.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace WPAdminify\Inc\Classes;
4
5 use WPAdminify\Inc\Utils;
6 use WPAdminify\Inc\Admin\AdminSettings;
7 use WPAdminify\Inc\Modules\MenuEditor\MenuEditorOptions;
8 // no direct access allowed
9 if ( !defined( 'ABSPATH' ) ) {
10 exit;
11 }
12 /**
13 * WPAdminify
14 * Third Party Plugins Compatibility
15 *
16 * @author Jewel Theme <support@jeweltheme.com>
17 */
18 class ThirdPartyCompatibility {
19 public $menu_settings;
20
21 public function __construct() {
22 $this->menu_settings = ( new MenuEditorOptions() )->get();
23 add_action( 'init', [$this, 'register_actions_on_init'], 0 );
24 add_action( 'admin_init', [$this, 'register_actions_on_admin_init'], 0 );
25 // 24-3-24
26 add_action( 'admin_enqueue_scripts', [$this, 'jltwp_adminify_reset_theme_conflicts'], 999999 );
27 // 28-6-24
28 add_action( 'admin_head', [$this, 'jltwp_adminify_plugin_conflicts'], 999999 );
29 }
30
31 public function jltwp_adminify_plugin_conflicts() {
32 $adminify_ui = AdminSettings::get_instance()->get( 'admin_ui' );
33 if ( !empty( $adminify_ui ) ) {
34 // Motopress Hotel Booking Lite
35 if ( Utils::is_plugin_active( 'motopress-hotel-booking-lite/motopress-hotel-booking.php' ) ) {
36 echo '<style>
37 .wp-adminify.bookings_page_mphb_calendar .widefat thead th,
38 .wp-adminify.bookings_page_mphb_calendar .widefat tfoot th,
39 .wp-adminify.bookings_page_mphb_calendar .widefat tbody td {
40 padding: 0 !important;
41 }
42 .adminify-ui .widefat tbody tr td:first-child {
43 border-left-color: inherit !important;
44 }
45 </style>';
46 }
47 }
48 if ( Utils::is_plugin_active( 'squirrly-seo/squirrly.php' ) ) {
49 echo '<style>
50 .wp-adminify.adminify-ui.block-editor-page .interface-interface-skeleton {
51 top: 0 !important;
52 }
53 </style>';
54 }
55 if ( Utils::is_plugin_active( 'surecart / surecart.php' ) || Utils::is_plugin_active( 'suremember/suremember.php' ) ) {
56 if ( !empty( $adminify_ui ) ) {
57 echo '<style>
58 .css-wa3qun,.backdrop-blur-sm {
59 top: 0 !important;
60 }
61 #suremembers-settings-content::before, #sc-settings-content::before{
62 width: 250px !important;
63 }
64 </style>';
65 }
66 }
67 if ( Utils::is_plugin_active( 'advanced-database-cleaner-pro/advanced-db-cleaner.php' ) ) {
68 echo '<style>
69 .wp-adminify.toplevel_page_advanced_db_cleaner #wpbody-content .wp-list-table.widefat td{
70 padding: 10px 10px;
71 }
72 .wp-adminify.toplevel_page_advanced_db_cleaner #wpbody-content input#aDBc_keep_button_revision {
73 padding: 0px 3px !important;
74 line-height: inherit !important;
75 }
76 </style>';
77 }
78 if ( Utils::is_plugin_active( 'insert-headers-and-footers/ihaf.php' ) ) {
79 echo '<style>
80 .wp-adminify .wpcode-code-type-picker, .wp-adminify .wpcode-code-type-picker-backdrop {
81 left: 0;
82 }
83 </style>';
84 }
85 if ( Utils::is_plugin_active( 'advanced-access-manager/aam.php' ) ) {
86 add_filter(
87 'jltwp_adminify_menu_option_compatibility_filter',
88 array($this, 'apply_menu_restrictions_via_filter'),
89 10,
90 2
91 );
92 }
93 }
94
95 public function apply_menu_restrictions_via_filter( $menu_options, $menu ) {
96 $aam_options = get_option( 'aam_access_settings', [] );
97 if ( is_array( $aam_options ) ) {
98 $simplified_aam_option = $this->simplify_aam_menu_restriction( $aam_options );
99 $menu_options = $this->update_aam_menu_option( $menu_options, $simplified_aam_option );
100 }
101 return $menu_options;
102 }
103
104 public function simplify_aam_menu_restriction( $aam_option ) {
105 $simplified_aam_option = [];
106 foreach ( $aam_option['role'] as $role => $aam_role ) {
107 if ( !empty( $aam_role['menu'] ) ) {
108 foreach ( $aam_role['menu'] as $menu_item => $value ) {
109 if ( !$value ) {
110 continue;
111 }
112 $menu_item = str_replace( 'menu-', '', $menu_item );
113 if ( !isset( $simplified_aam_option[$menu_item] ) ) {
114 $simplified_aam_option[$menu_item] = [];
115 }
116 $simplified_aam_option[$menu_item][] = $role;
117 }
118 }
119 }
120 return $simplified_aam_option;
121 }
122
123 public function update_aam_menu_option( $menu_options, $simplified_aam_option ) {
124 foreach ( $menu_options as $key => $item ) {
125 // If this menu item is in restricted list, update hidden_for
126 if ( isset( $simplified_aam_option[$key] ) ) {
127 if ( !isset( $item['hidden_for'] ) ) {
128 $item['hidden_for'] = [];
129 }
130 $item['hidden_for'] = array_merge( $item['hidden_for'], $simplified_aam_option[$key] );
131 $item['hidden_for'] = array_unique( $item['hidden_for'] );
132 }
133 // If submenu exists, apply the function recursively
134 // if (isset($item['submenu']) && is_array($item['submenu'])) {
135 // $item['submenu'] = update_aam_menu_option($item['submenu'], $simplified_aam_option);
136 // }
137 $menu_options[$key] = $item;
138 }
139 return $menu_options;
140 }
141
142 public function jltwp_adminify_reset_theme_conflicts() {
143 global $pagenow;
144 if ( $pagenow == 'wp-login.php' || $pagenow == 'wp-register.php' || $pagenow == 'customize.php' ) {
145 return;
146 }
147 $theme = wp_get_theme();
148 // Neve WordPress Theme
149 if ( 'Neve' == $theme->name || 'Neve' == $theme->parent_theme ) {
150 wp_enqueue_style(
151 'wp-adminify_neve-theme',
152 WP_ADMINIFY_ASSETS . 'css/themes/neve.min.css',
153 false,
154 WP_ADMINIFY_VER
155 );
156 }
157 // Phlox WordPress Theme
158 if ( 'Phlox' == $theme->name || 'Phlox' == $theme->parent_theme ) {
159 echo '<style>
160 .wp-adminify.adminify-ui #wpcontent .wp-adminify.adminify-top_bar {
161 opacity: 1 !important;
162 }
163 </style>';
164 }
165 // Enfold WordPress Theme
166 if ( 'Enfold' == $theme->name || 'Enfold' == $theme->parent_theme ) {
167 echo '<style>
168 .wp-adminify.avia-advanced-editor-enabled #wpadminbar{
169 display: none !important;
170 }
171 </style>';
172 }
173 // Third Party Plugin CSS Conflict
174 // $jltwp_adminify_plugin_conflict_css = '';
175 // if (Utils::is_plugin_active('quillforms/quillforms.php')) {
176 // $jltwp_adminify_plugin_conflict_css = '//css code here';
177 // $jltwp_adminify_plugin_conflict_css = preg_replace('#/\*.*?\*/#s', '', $jltwp_adminify_plugin_conflict_css);
178 // $jltwp_adminify_plugin_conflict_css = preg_replace('/\s*([{}|:;,])\s+/', '$1', $jltwp_adminify_plugin_conflict_css);
179 // $jltwp_adminify_plugin_conflict_css = preg_replace('/\s\s+(.*)/', '$1', $jltwp_adminify_plugin_conflict_css);
180 // }
181 // $adminify_ui = AdminSettings::get_instance()->get('admin_ui');
182 // if (!empty($adminify_ui)) {
183 // wp_add_inline_style('wp-adminify-admin', wp_strip_all_tags($jltwp_adminify_plugin_conflict_css));
184 // } else {
185 // wp_add_inline_style('wp-adminify-default-ui', wp_strip_all_tags($jltwp_adminify_plugin_conflict_css));
186 // }
187 if ( Utils::is_plugin_active( 'stackable-ultimate-gutenberg-blocks-premium/plugin.php' ) ) {
188 echo '<style>
189 .wp-adminify.adminify-ui #wpcontent .wp-adminify.adminify-top_bar {
190 opacity: 1 !important;
191 }
192 </style>';
193 }
194 if ( Utils::is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
195 echo '<style>
196 .adminify-ui #woocommerce-embedded-root .woocommerce-layout__header, .adminify-ui .woocommerce-layout .woocommerce-layout__header {
197 width: 100%;
198 top: 0;
199 }
200 .adminify-ui #woocommerce-embedded-root .woocommerce-layout__header .woocommerce-layout__header-wrapper, .adminify-ui .woocommerce-layout .woocommerce-layout__header .woocommerce-layout__header-wrapper {
201 margin-right: 1rem;
202 }
203 body.woocommerce-page #wpwrap #wpcontent,
204 body.woocommerce-page.woocommerce_page_wc-admin #wpwrap #wpbody-content {
205 overflow-x: unset !important;
206 position: unset !important;
207 }
208 </style>';
209 }
210 if ( Utils::is_plugin_active( 'tinymce-templates/tinymce-templates.php' ) ) {
211 echo '<style>#tinymce-templates-wrap #tinymce-templates-preview { height: 500px !important; }</style>';
212 }
213 if ( Utils::is_plugin_active( 'elementor/elementor.php' ) ) {
214 echo '<style>
215 body.wp-adminify-admin-bar.admin-bar .dialog-lightbox-widget {
216 height: calc(100vh - 0px) !important;
217 }
218 body.wp-adminify-admin-bar.admin-bar #e-admin-top-bar-root{
219 padding-top: 70px !important;
220 width: calc(100% + 20px) !important;
221 margin-left: -20px;
222 }
223 body.wp-adminify-admin-bar.admin-bar #e-admin-top-bar-root .e-admin-top-bar{
224 padding-left: 20px;
225 }
226 </style>';
227 }
228 if ( Utils::is_plugin_active( 'one-click-demo-import/one-click-demo-import.php' ) ) {
229 echo '<style>
230 .wp-adminify.appearance_page_one-click-demo-import .button-hero {
231 min-height: auto !important;
232 }
233 </style>';
234 }
235 if ( Utils::is_plugin_active( 'wpforms-lite/wpforms.php' ) ) {
236 if ( Utils::jltwp_adminify_currentpage_id( 'dashboard' ) ) {
237 wp_enqueue_style(
238 'wpforms-full',
239 WPFORMS_PLUGIN_URL . 'assets/css/frontend/classic/wpforms-full.css',
240 [],
241 WPFORMS_VERSION
242 );
243 }
244 }
245 if ( Utils::is_plugin_active( 'classic-editor/classic-editor.php' ) ) {
246 echo '<style>
247 #ed_toolbar{
248 width: 100% !important;
249 }
250 #ed_toolbar #qt_content_dfw{
251 line-height: inherit;
252 padding: 0;
253 }
254 </style>';
255 }
256 if ( Utils::is_plugin_active( 'updraftplus/updraftplus.php' ) ) {
257 echo '<style>
258 .wp-adminify.settings_page_updraftplus input{
259 border-radius: 4px !important;
260 border: 1px solid #CCC !important;
261 }
262 .wp-adminify.adminify-dark-mode .updraft_feat_table,
263 .wp-adminify.adminify-dark-mode .updraft_feat_table td,
264 .wp-adminify.adminify-dark-mode .updraft_next_scheduled_backups_wrapper > div,
265 .wp-adminify.adminify-dark-mode .updraft_migrate_widget_module_content{
266 background: inherit;
267 }
268 .wp-adminify.adminify-dark-mode .updraft_premium_cta,
269 .wp-adminify.adminify-dark-mode .updraft_premium_cta__bottom,
270 .wp-adminify.adminify-dark-mode .udp-box,
271 .wp-adminify.adminify-dark-mode .updraftcentral_cloud_connect,
272 .wp-adminify.adminify-dark-mode .updraft_advert_bottom,
273 .wp-adminify.adminify-dark-mode #remote-storage-container label{
274 background: #020407;
275 }
276 .wp-adminify.adminify-dark-mode .expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button{
277 color: inherit;
278 }
279 </style>';
280 }
281 if ( Utils::is_plugin_active( 'tinymce-advanced/tinymce-advanced.php' ) ) {
282 echo '<style>
283 .wp-editor-container .mce-container-body .mce-menubar.mce-toolbar{
284 position: initial !important;
285 }
286 .wp-editor-container .mce-container-body .mce-toolbar-grp .mce-container-body{
287 position: relative !important;
288 }
289 .wp-editor-container .mce-container-body .mce-toolbar-grp .mce-toolbar.mce-first {
290 padding-right: 0 !important;
291 }
292 #ed_toolbar{
293 width: 100% !important;
294 }
295 #ed_toolbar #qt_content_dfw{
296 line-height: inherit;
297 padding: 0;
298 }
299 </style>';
300 }
301 // Third Party localize script
302 wp_localize_script( 'wp-adminify-admin', 'WPAdminify_ThirdParty', $this->thirdparty_create_js_object() );
303 }
304
305 public function thirdparty_create_js_object() {
306 // betterlinks menu settings
307 $betterlinks = [
308 'active' => false,
309 ];
310 if ( Utils::is_plugin_active( 'betterlinks/betterlinks.php' ) ) {
311 if ( is_array( $this->menu_settings ) && array_key_exists( 'betterlinks', $this->menu_settings ) ) {
312 $menu_name = ( !empty( $this->menu_settings['betterlinks']['name'] ) ? esc_html( $this->menu_settings['betterlinks']['name'] ) : '' );
313 $submenu_manage = ( !empty( $this->menu_settings['betterlinks']['submenu']['betterlinks']['name'] ) ? esc_html( $this->menu_settings['betterlinks']['submenu']['betterlinks']['name'] ) : '' );
314 $submenu_name = ( !empty( $this->menu_settings['betterlinks']['submenu']['betterlinks-analytics']['name'] ) ? esc_html( $this->menu_settings['betterlinks']['submenu']['betterlinks-analytics']['name'] ) : '' );
315 $submenu_settings = ( !empty( $this->menu_settings['betterlinks']['submenu']['betterlinks-settings']['name'] ) ? esc_html( $this->menu_settings['betterlinks']['submenu']['betterlinks-settings']['name'] ) : '' );
316 $betterlinks = [
317 'active' => true,
318 'menu_name' => esc_html( $menu_name ),
319 'submenu_manage' => esc_html( $submenu_manage ),
320 'submenu_name' => esc_html( $submenu_name ),
321 'submenu_settings' => esc_html( $submenu_settings ),
322 ];
323 }
324 }
325 return [
326 'ajax_url' => admin_url( 'admin-ajax.php' ),
327 'better_links' => wp_kses_post_deep( $betterlinks ),
328 ];
329 }
330
331 public function register_actions_on_init() {
332 // Brizy Builder
333 if ( isset( $_REQUEST['brizy-edit-iframe'] ) ) {
334 add_filter( 'wp_adminify_defer_skip', '__return_true' );
335 add_filter( 'wp_adminify_skip_removing_dashicons', '__return_true' );
336 }
337 }
338
339 public function register_actions_on_admin_init() {
340 $adminify_ui = AdminSettings::get_instance()->get( 'admin_ui' );
341 if ( !empty( $adminify_ui ) ) {
342 // Commented On: 24-3-24
343 add_action( 'admin_enqueue_scripts', [$this, 'enqueue_scripts'], 999 );
344 }
345 // Commented On: 10-6-24
346 // add_filter('adminify_third_party_styles', [$this, 'register_compatability_styles']);
347 // Fluent CRM
348 add_action( 'fluentcrm_skip_no_conflict', '__return_true' );
349 // Fluent FORM
350 add_action( 'fluentform_skip_no_conflict', '__return_true' );
351 }
352
353 /**
354 * Register Third Party Styles
355 *
356 * @since 1.0.0
357 */
358 public function register_compatability_styles( $plugin_supports ) {
359 if ( !is_array( $plugin_supports ) ) {
360 $plugin_supports = [];
361 }
362 $plugin_dir = WP_ADMINIFY_ASSETS . 'css/plugins/';
363 $plugin_files = list_files( WP_ADMINIFY_PATH . 'assets/css/plugins/', 1 );
364 if ( !empty( $plugin_files ) ) {
365 foreach ( $plugin_files as $file ) {
366 $plugin_supports[wp_basename( $file, '.min.css' )] = $plugin_dir . wp_basename( $file );
367 }
368 }
369 return $plugin_supports;
370 }
371
372 /**
373 * Admin Enqueue Third Party Scripts/Styles
374 *
375 * @return void
376 */
377 public function enqueue_scripts() {
378 $plugin_supports = [];
379 $plugin_supports = apply_filters( 'adminify_third_party_styles', $plugin_supports );
380 // Check Plugin Activated for Site Wide
381 if ( is_multisite() ) {
382 $active_plugins = get_site_option( 'active_sitewide_plugins' );
383 foreach ( $active_plugins as $active_path => $active_plugin ) {
384 if ( is_plugin_active_for_network( $active_path ) ) {
385 $string = explode( '/', $active_path );
386 $pluginname = $string[0];
387 if ( isset( $plugin_supports[$pluginname] ) ) {
388 if ( $plugin_supports[$pluginname] != '' ) {
389 wp_register_style(
390 'wp-adminify_site-wide_' . $pluginname . '_css',
391 $plugin_supports[$pluginname],
392 [],
393 WP_ADMINIFY_VER
394 );
395 wp_enqueue_style( 'wp-adminify_site-wide_' . $pluginname . '_css' );
396 }
397 }
398 }
399 }
400 }
401 // Check Plugin Activated for Individual Sites
402 $activeplugins = get_option( 'active_plugins' );
403 foreach ( $activeplugins as $plugin ) {
404 if ( Utils::is_plugin_active( $plugin ) ) {
405 $string = explode( '/', $plugin );
406 $pluginname = $string[0];
407 if ( isset( $plugin_supports[$pluginname] ) ) {
408 if ( $plugin_supports[$pluginname] != '' ) {
409 wp_register_style(
410 'wp-adminify_' . $pluginname . '_css',
411 $plugin_supports[$pluginname],
412 [],
413 WP_ADMINIFY_VER
414 );
415 wp_enqueue_style( 'wp-adminify_' . $pluginname . '_css' );
416 }
417 }
418 }
419 }
420 }
421
422 }
423