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

129 lines 3.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\Productivity;
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 $disable_gutenberg;
24
25 public function __construct()
26 {
27 $this->widget_list = (array) AdminSettings::get_instance()->get('remove_widgets')['sidebar_widgets_list'];
28
29
30 // Get and disable the sidebar widgets.
31 add_action('widgets_init', [$this, 'jltma_remove_default_widgets'], 99);
32 }
33
34 /**
35 * Render all registered widgets
36 *
37 * @return void
38 */
39 public static function render_sidebar_checkboxes()
40 {
41 return get_option('sidebar_widgets', []);
42 }
43
44
45 /**
46 * Generate Sidebar Widgets on Checkbox format
47 *
48 * @return void
49 */
50 public static function jltwp_adminify_get_default_widgets()
51 {
52 global $wp_widget_factory;
53
54 $widgets = [];
55
56 // $default_widgets = [
57 // 'WP_Widget_Pages',
58 // 'WP_Widget_Calendar',
59 // 'WP_Widget_Archives',
60 // 'WP_Widget_Links',
61 // 'WP_Widget_Media_Audio',
62 // 'WP_Widget_Media_Image',
63 // 'WP_Widget_Media_Video',
64 // 'WP_Widget_Media_Gallery',
65 // 'WP_Widget_Meta',
66 // 'WP_Widget_Search',
67 // 'WP_Widget_Text',
68 // 'WP_Widget_Categories',
69 // 'WP_Widget_Recent_Posts',
70 // 'WP_Widget_Recent_Comments',
71 // 'WP_Widget_RSS',
72 // 'WP_Widget_Tag_Cloud',
73 // 'WP_Nav_Menu_Widget',
74 // 'WP_Widget_Custom_HTML'
75 // ];
76
77 /**
78 * Array of known widgets that won't work in the builder.
79 *
80 * @see jltwp_adminify_get_wp_widgets_exclude
81 */
82 $exclude = apply_filters(
83 'jltwp_adminify_get_wp_widgets_exclude',
84 [
85 'WP_Widget_Media_Audio',
86 'WP_Widget_Media_Image',
87 'WP_Widget_Media_Video',
88 'WP_Widget_Media_Gallery',
89 'WP_Widget_Text',
90 'WP_Widget_Custom_HTML',
91 ]
92 );
93
94 foreach ($wp_widget_factory->widgets as $class => $widget) {
95 if (in_array($class, $exclude)) {
96 continue;
97 }
98 $widgets[$class] = $widget->name;
99 }
100
101 ksort($widgets);
102 return $widgets;
103 }
104
105
106
107 /**
108 * Remove Sidebar Widgets.
109 *
110 * Gets the list of disabled sidebar widgets and disables
111 * them for you in WordPress.
112 *
113 * @since 1.0.0
114 */
115 public function jltma_remove_default_widgets()
116 {
117 $widgets = $this->widget_list;
118 $_widgets = $this->jltwp_adminify_get_default_widgets();
119
120 update_option('sidebar_widgets', $_widgets);
121
122 if (!empty($widgets)) {
123 foreach ($widgets as $widget_class) {
124 unregister_widget($widget_class);
125 }
126 }
127 }
128 }
129