PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 1.0.3
Adminify – White Label, Admin Menu Editor, Login Customizer v1.0.3
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 / Sidebar_Widgets.php

Sidebar_Widgets.php in Adminify – White Label, Admin Menu Editor, Login Customizer 1.0.3, at inc/classes/Sidebar_Widgets.php

82 lines 2.1 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\Admin\AdminSettings;
6 use WPAdminify\Inc\Admin\AdminSettingsModel;
7 use WPAdminify\Inc\Admin\Options\Sidebar_Remove;
8
9 // no direct access allowed
10 if (!defined('ABSPATH')) exit;
11 /**
12 * WPAdminify
13 * Sidebar Widgets
14 *
15 * @author Jewel Theme <support@jeweltheme.com>
16 */
17
18 class Sidebar_Widgets extends AdminSettingsModel
19 {
20 public function __construct()
21 {
22
23 $AdminSettings = AdminSettings::get_instance();
24
25 $this->widget_list = (array) $AdminSettings->get('sidebar_widgets_list');
26 $this->restrict_for = (array) $AdminSettings->get('sidebar_widgets_user_roles');
27 $this->disable_gutenberg = wp_validate_boolean( $AdminSettings->get('sidebar_widgets_disable_gutenberg_editor') );
28
29 $this->disable_gutenberg_editor();
30
31 // Get and disable the sidebar widgets.
32 add_action('widgets_init', [$this, 'jltma_remove_default_widgets'], 99);
33
34 }
35
36 public function disable_gutenberg_editor() {
37
38 if ( $this->disable_gutenberg ) {
39 add_filter('gutenberg_use_widgets_block_editor', '__return_false');
40 add_filter('use_widgets_block_editor', '__return_false');
41 }
42
43 }
44
45 /**
46 * Render all registered widgets
47 *
48 * @return void
49 */
50 public static function render_sidebar_checkboxes()
51 {
52 return get_site_option( 'sidebar_widgets', [] );
53 }
54
55 /**
56 * Remove Sidebar Widgets.
57 *
58 * Gets the list of disabled sidebar widgets and disables
59 * them for you in WordPress.
60 *
61 * @since 1.0.0
62 */
63 public function jltma_remove_default_widgets()
64 {
65
66 $user = wp_get_current_user();
67 if ( !empty(array_intersect($this->restrict_for, $user->roles)) ) return;
68
69 $widgets = $this->widget_list;
70
71 $_widgets = Sidebar_Remove::jltma_get_default_widgets();
72
73 update_site_option( 'sidebar_widgets', $_widgets );
74
75 if ( !empty($widgets) ) {
76 foreach ( $widgets as $widget_class ) {
77 unregister_widget($widget_class);
78 }
79 }
80 }
81 }
82