PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 4.1.13
Adminify – White Label, Admin Menu Editor, Login Customizer v4.1.13
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.1.13, at Inc/Admin/Admin.php

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