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

78 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 function __construct() {
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 public function disable_gutenberg_editor() {
36 if ( $this->disable_gutenberg ) {
37 add_filter( 'gutenberg_use_widgets_block_editor', '__return_false' );
38 add_filter( 'use_widgets_block_editor', '__return_false' );
39 }
40 }
41
42 /**
43 * Render all registered widgets
44 *
45 * @return void
46 */
47 public static function render_sidebar_checkboxes() {
48 return get_option( 'sidebar_widgets', [] );
49 }
50
51 /**
52 * Remove Sidebar Widgets.
53 *
54 * Gets the list of disabled sidebar widgets and disables
55 * them for you in WordPress.
56 *
57 * @since 1.0.0
58 */
59 public function jltma_remove_default_widgets() {
60 $user = wp_get_current_user();
61 if ( ! empty( array_intersect( $this->restrict_for, $user->roles ) ) ) {
62 return;
63 }
64
65 $widgets = $this->widget_list;
66
67 $_widgets = Sidebar_Remove::jltma_get_default_widgets();
68
69 update_option( 'sidebar_widgets', $_widgets );
70
71 if ( ! empty( $widgets ) ) {
72 foreach ( $widgets as $widget_class ) {
73 unregister_widget( $widget_class );
74 }
75 }
76 }
77 }
78