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

128 lines 3.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace PXLBSAdminify\Inc\Classes;
4
5 use PXLBSAdminify\Inc\Admin\AdminSettings;
6 use PXLBSAdminify\Inc\Admin\AdminSettingsModel;
7
8 // no direct access allowed
9 if (!defined('ABSPATH')) {
10 exit;
11 }
12 /**
13 * PXLBSAdminify
14 * Sidebar Widgets
15 *
16 * @author Jewel Theme <support@jeweltheme.com>
17 */
18
19 class Sidebar_Widgets extends AdminSettingsModel
20 {
21 public $widget_list;
22 public $disable_gutenberg;
23
24 public function __construct()
25 {
26 $this->widget_list = (array) AdminSettings::get_instance()->get('remove_widgets')['sidebar_widgets_list'];
27
28
29 // Get and disable the sidebar widgets.
30 add_action('widgets_init', [$this, 'remove_default_widgets'], 99);
31 }
32
33 /**
34 * Render all registered widgets
35 *
36 * @return void
37 */
38 public static function render_sidebar_checkboxes()
39 {
40 return get_option('sidebar_widgets', []);
41 }
42
43
44 /**
45 * Generate Sidebar Widgets on Checkbox format
46 *
47 * @return void
48 */
49 public static function get_default_widgets()
50 {
51 global $wp_widget_factory;
52
53 $widgets = [];
54
55 // $default_widgets = [
56 // 'WP_Widget_Pages',
57 // 'WP_Widget_Calendar',
58 // 'WP_Widget_Archives',
59 // 'WP_Widget_Links',
60 // 'WP_Widget_Media_Audio',
61 // 'WP_Widget_Media_Image',
62 // 'WP_Widget_Media_Video',
63 // 'WP_Widget_Media_Gallery',
64 // 'WP_Widget_Meta',
65 // 'WP_Widget_Search',
66 // 'WP_Widget_Text',
67 // 'WP_Widget_Categories',
68 // 'WP_Widget_Recent_Posts',
69 // 'WP_Widget_Recent_Comments',
70 // 'WP_Widget_RSS',
71 // 'WP_Widget_Tag_Cloud',
72 // 'WP_Nav_Menu_Widget',
73 // 'WP_Widget_Custom_HTML'
74 // ];
75
76 /**
77 * Array of known widgets that won't work in the builder.
78 *
79 * @see pxlbsadminify_get_wp_widgets_exclude
80 */
81 $exclude = apply_filters(
82 'pxlbsadminify_get_wp_widgets_exclude',
83 [
84 'WP_Widget_Media_Audio',
85 'WP_Widget_Media_Image',
86 'WP_Widget_Media_Video',
87 'WP_Widget_Media_Gallery',
88 'WP_Widget_Text',
89 'WP_Widget_Custom_HTML',
90 ]
91 );
92
93 foreach ($wp_widget_factory->widgets as $class => $widget) {
94 if (in_array($class, $exclude)) {
95 continue;
96 }
97 $widgets[$class] = $widget->name;
98 }
99
100 ksort($widgets);
101 return $widgets;
102 }
103
104
105
106 /**
107 * Remove Sidebar Widgets.
108 *
109 * Gets the list of disabled sidebar widgets and disables
110 * them for you in WordPress.
111 *
112 * @since 1.0.0
113 */
114 public function remove_default_widgets()
115 {
116 $widgets = $this->widget_list;
117 $_widgets = $this->get_default_widgets();
118
119 update_option('sidebar_widgets', $_widgets);
120
121 if (!empty($widgets)) {
122 foreach ($widgets as $widget_class) {
123 unregister_widget($widget_class);
124 }
125 }
126 }
127 }
128