# adminify/3.2.4.1/Inc/Classes/Sidebar_Widgets.php

Adminify – White Label, Admin Menu Editor, Login Customizer, version 3.2.4.1. 86 lines.

- Page: https://pluginprobe.com/plugins/adminify/3.2.4.1/code/Inc/Classes/Sidebar_Widgets.php
- Raw: https://pluginprobe.com/plugins/adminify/3.2.4.1/raw/Inc/Classes/Sidebar_Widgets.php
- Modified: 2024-01-21T13:27:18+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/adminify/3.2.4.1/code/Inc/Classes/Sidebar_Widgets.php#L10-L20`.

```php
<?php

namespace WPAdminify\Inc\Classes;

use WPAdminify\Inc\Admin\AdminSettings;
use WPAdminify\Inc\Admin\AdminSettingsModel;
use WPAdminify\Inc\Admin\Options\Sidebar_Remove;

// no direct access allowed
if (!defined('ABSPATH')) {
	exit;
}
/**
 * WPAdminify
 * Sidebar Widgets
 *
 * @author Jewel Theme <support@jeweltheme.com>
 */

class Sidebar_Widgets extends AdminSettingsModel
{
	public $widget_list;
	public $restrict_for;
	public $disable_gutenberg;

	public function __construct()
	{
		$AdminSettings = AdminSettings::get_instance();

		$this->widget_list       = (array) $AdminSettings->get('sidebar_widgets_list');
		$this->restrict_for      = (array) $AdminSettings->get('sidebar_widgets_user_roles');
		$this->disable_gutenberg = wp_validate_boolean($AdminSettings->get('sidebar_widgets_disable_gutenberg_editor'));

		$this->disable_gutenberg_editor();

		// Get and disable the sidebar widgets.
		add_action('widgets_init', [$this, 'jltma_remove_default_widgets'], 99);
	}

	public function disable_gutenberg_editor()
	{
		if ($this->disable_gutenberg) {
			add_filter('gutenberg_use_widgets_block_editor', '__return_false');
			add_filter('use_widgets_block_editor', '__return_false');
		}
	}

	/**
	 * Render all registered widgets
	 *
	 * @return void
	 */
	public static function render_sidebar_checkboxes()
	{
		return get_option('sidebar_widgets', []);
	}

	/**
	 * Remove Sidebar Widgets.
	 *
	 * Gets the list of disabled sidebar widgets and disables
	 * them for you in WordPress.
	 *
	 * @since 1.0.0
	 */
	public function jltma_remove_default_widgets()
	{
		$user = wp_get_current_user();
		if (!empty(array_intersect($this->restrict_for, $user->roles))) {
			return;
		}

		$widgets = $this->widget_list;

		$_widgets = Sidebar_Remove::jltma_get_default_widgets();

		update_option('sidebar_widgets', $_widgets);

		if (!empty($widgets)) {
			foreach ($widgets as $widget_class) {
				unregister_widget($widget_class);
			}
		}
	}
}

```
