PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 3.2.4.1
Adminify – White Label, Admin Menu Editor, Login Customizer v3.2.4.1
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
adminify / Inc / Classes / Sidebar_Widgets.php

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

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