PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 4.0.7
Adminify – White Label, Admin Menu Editor, Login Customizer v4.0.7
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 / Admin / Admin.php

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

297 lines 7.9 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\Admin;
4
5 use WPAdminify\Inc\Utils;
6 use \WPAdminify\Inc\Classes\CustomAdminColumns;
7 use \WPAdminify\Inc\Classes\Tweaks;
8 use \WPAdminify\Inc\Classes\MenuStyle;
9 use \WPAdminify\Inc\Classes\AdminBar;
10 use \WPAdminify\Inc\Classes\OutputCSS;
11 use \WPAdminify\Inc\Classes\ThirdPartyCompatibility;
12 use \WPAdminify\Inc\Classes\AdminFooterText;
13 use \WPAdminify\Inc\Admin\Modules;
14 use \WPAdminify\Inc\Classes\Sidebar_Widgets;
15 use \WPAdminify\Inc\Classes\Remove_DashboardWidgets;
16 use WPAdminify\Inc\Classes\Adminify_Rollback;
17 use WPAdminify\Inc\Admin\AdminSettings;
18 use WPAdminify\Inc\Admin\Frames\Init as FrameInit;
19
20 // no direct access allowed
21 if (!defined('ABSPATH')) {
22 exit;
23 }
24 /**
25 * WP Adminify
26 * Admin Class
27 *
28 * @author Jewel Theme <support@jeweltheme.com>
29 */
30
31 if (!class_exists('Admin')) {
32 class Admin
33 {
34 public $options = [];
35
36 public function __construct()
37 {
38 $this->options = AdminSettings::get_instance()->get();
39
40 $this->jltwp_adminify_modules_manager();
41
42 // Remove Page Header like - Dashboard, Plugins, Users etc
43 // add_action('admin_head', [$this, 'remove_page_headline'], 99);
44
45
46 // Freemius Hooks
47 jltwp_adminify()->add_filter('plugin_icon', array($this, 'jltwp_adminify_logo_icon'));
48
49 add_action('admin_menu', array($this, 'support_menu'), 1100);
50 add_action('admin_menu', [$this, 'submenu_link_new_tab']);
51 add_action('plugins_loaded', array($this, 'jltwp_adminify_ajax_data_save'), 999);
52 // jltwp_adminify()->add_filter('support_forum_url', [$this, 'jltwp_adminify_support_forum_url']);
53
54 // Disable deactivation feedback form
55 jltwp_adminify()->add_filter('show_deactivation_feedback_form', '__return_false');
56
57 // Disable after deactivation subscription cancellation window
58 jltwp_adminify()->add_filter('show_deactivation_subscription_cancellation', '__return_false');
59
60 $this->disable_gutenberg_editor();
61
62 add_filter('show_admin_bar', [ $this, 'jltwp_adminify_removeAdminBar'], PHP_INT_MAX);
63 add_action('wp_head', [ $this,'jltwp_adminify_remove_header_for_baknd'], PHP_INT_MAX);
64
65 }
66
67 function jltwp_adminify_removeAdminBar($status)
68 {
69 if (!empty($_GET['bknd']) && sanitize_text_field(wp_unslash($_GET['bknd']))) {
70 return false;
71 }
72 return $status;
73 }
74
75 function jltwp_adminify_remove_header_for_baknd() {
76 if (isset($_GET['bknd']) && $_GET['bknd'] == '1') {
77 echo '<script>
78 jQuery(document).ready(function($){
79 $("header").remove();
80 $("footer").remove();
81 })
82 </script>';
83 }
84 }
85
86
87 public function jltwp_adminify_ajax_data_save()
88 {
89 $ajax_data_save = new \WPAdminify\Inc\Classes\Notifications\What_We_Collect();
90 $ajax_data_save->jltwp_adminify_collect_ajax_data();
91 }
92
93 public function disable_gutenberg_editor()
94 {
95 // Sidebar Widgets Remove
96 if (!empty($this->options['remove_widgets']['disable_gutenberg_editor'])) {
97 // Disable Gutenberg for Block Editor
98 add_filter('gutenberg_use_widgets_block_editor', '__return_false');
99 // Disable Gutenberg for widgets.
100 add_filter('use_widgets_block_editor', '__return_false');
101 }
102
103 // Disable Block Editor Gutenberg
104 if (!empty($this->options["disable_gutenberg"]['disable_for']) && in_array('block_editor', $this->options["disable_gutenberg"]['disable_for'])) {
105 add_filter('use_block_editor_for_post', '__return_false');
106 add_action('wp_enqueue_scripts', [$this, 'remove_backend_gutenberg_scripts'], 20);
107 }
108
109 // Remove all scripts and styles added by Gutenberg
110 if (isset($this->options["disable_gutenberg"]['disable_gutenberg_enable']) && $this->options["disable_gutenberg"]['disable_gutenberg_enable'] && in_array('remove_gutenberg_scripts', $this->options["disable_gutenberg"]['disable_for'])) {
111 add_action('wp_enqueue_scripts', [$this, 'remove_gutenberg_scripts']);
112 remove_action('enqueue_block_assets', 'wp_enqueue_registered_block_scripts_and_styles');
113 }
114 }
115
116
117 // Dequeue all Frontend scripts and styles added by Gutenberg
118 public function remove_gutenberg_scripts()
119 {
120 wp_dequeue_style('wp-block-library');
121 wp_dequeue_style('wc-block-style'); // Remove WooCommerce block CSS
122
123 // Remove Inline CSS
124 // wp_deregister_style('wp-block-library-inline');
125 // wp_dequeue_style('wp-block-library-inline');
126 }
127
128 /**
129 * Remove Gutenberg Scripts
130 *
131 * @return void
132 */
133 public function remove_backend_gutenberg_scripts()
134 {
135 if (is_admin()) {
136 // Remove CSS on the front end.
137 wp_dequeue_style('wp-block-library');
138
139 // Remove Gutenberg theme.
140 wp_dequeue_style('wp-block-library-theme');
141
142 // Remove inline global CSS on the front end.
143 wp_dequeue_style('global-styles');
144 }
145 }
146
147 /**
148 * Adminify Logo
149 *
150 * @param [type] $logo
151 *
152 * @return void
153 */
154 public function jltwp_adminify_logo_icon($logo)
155 {
156 $logo = WP_ADMINIFY_PATH . '/assets/images/adminify.svg';
157 return $logo;
158 }
159
160
161 /**
162 * WP Adminify: Modules
163 */
164 public function jltwp_adminify_modules_manager()
165 {
166 // new MenuStyle();
167 new Modules();
168 new AdminBar();
169 new Tweaks();
170 new OutputCSS();
171 new ThirdPartyCompatibility();
172 new AdminFooterText();
173 new Sidebar_Widgets();
174 new Remove_DashboardWidgets();
175
176 if (!empty($this->options['admin_ui']) && preg_match('/https:\/\//', site_url()) && is_ssl()) {
177 FrameInit::instance();
178 }
179
180 // Version Rollback
181 // Adminify_Rollback::get_instance();
182 }
183
184
185 /**
186 * Remove Page Headlines: Dashboard, Plugins, Users
187 *
188 * @return void
189 */
190 public function remove_page_headline()
191 {
192 $screen = get_current_screen();
193 if (empty($screen->id)) {
194 return;
195 }
196
197 if (in_array(
198 $screen->id,
199 [
200 'dashboard',
201 'nav-menus',
202 'edit-tags',
203 'themes',
204 'widgets',
205 'plugins',
206 'plugin-install',
207 'users',
208 'user',
209 'profile',
210 'tools',
211 'import',
212 'export',
213 'export-personal-data',
214 'erase-personal-data',
215 'options-general',
216 'options-writing',
217 'options-reading',
218 'options-discussion',
219 'options-media',
220 'options-permalink',
221 ]
222 )) {
223 echo '<style>#wpbody-content .wrap > h1,#wpbody-content .wrap > h1.wp-heading-inline{display:none;}</style>';
224 }
225 }
226
227
228 public function support_menu()
229 {
230 // $this->submenu_link_new_tab();
231 // $adminify_ui = AdminSettings::get_instance()->get('admin_ui');
232 $support_url = 'adminify-support';
233 // if($adminify_ui ) {
234 // $support_urlsss = \WPAdminify\Inc\Admin\AdminSettings::support_url();
235 // }
236 add_submenu_page(
237 'wp-adminify-settings', // Ex. wp-adminify-settings
238 __('Get Support', 'adminify'),
239 __('Support', 'adminify'),
240 'manage_options',
241 $support_url,
242 [$this, 'support_menu_redirect'],
243 60
244 );
245
246 // Hook into admin_init to handle the redirect early, before any output
247 add_action('admin_init', [$this, 'handle_support_redirect']);
248 }
249
250 /**
251 * Handle support menu redirect
252 * This method is called when the support page would normally load
253 */
254 public function support_menu_redirect()
255 {
256 // This function body will never execute because we redirect in admin_init
257 // But it needs to exist as the callback
258 }
259
260 /**
261 * Handle the actual redirect in admin_init before any output
262 */
263 public function handle_support_redirect()
264 {
265 if (isset($_GET['page']) && $_GET['page'] === 'adminify-support') {
266 $redirect_url = \WPAdminify\Inc\Admin\AdminSettings::support_url();
267
268 // Add the URLs to the allowed redirect hosts filter
269 add_filter('allowed_redirect_hosts', function($hosts) {
270 $hosts[] = 'wpadminify.com';
271 $hosts[] = 'wordpress.org';
272 return $hosts;
273 });
274
275 // Use wp_redirect for external URLs instead of wp_safe_redirect
276 wp_redirect($redirect_url, 301);
277 exit;
278 }
279 }
280
281
282 public function submenu_link_new_tab()
283 {
284 add_action('admin_footer', function () {
285 ?>
286 <script type="text/javascript">
287 jQuery(document).ready(function($) {
288 $('a[href="admin.php?page=adminify-support"]').attr('target', '_blank');
289 });
290 </script>
291 <?php
292 });
293 }
294
295 }
296 }
297