PluginProbe ʕ •ᴥ•ʔ
Advanced Access Manager – Access Governance for WordPress / 5.0
Advanced Access Manager – Access Governance for WordPress v5.0
6.8.4 6.8.5 6.9.0 6.9.1 6.9.10 6.9.11 6.9.12 6.9.13 6.9.14 6.9.15 6.9.16 6.9.17 6.9.18 6.9.19 6.9.2 6.9.20 6.9.21 6.9.22 6.9.23 6.9.24 6.9.25 6.9.26 6.9.27 6.9.28 6.9.29 6.9.3 6.9.30 6.9.31 6.9.32 6.9.33 6.9.34 6.9.35 6.9.36 6.9.37 6.9.38 6.9.39 6.9.4 6.9.41 6.9.42 6.9.43 6.9.44 6.9.45 6.9.46 6.9.47 6.9.48 6.9.49 6.9.5 6.9.51 6.9.6 6.9.7 6.9.8 6.9.9 7.0.0 7.0.0-alpha.6 7.0.0-alpha.7 7.0.0-beta.1 7.0.0-rc1 7.0.0-rc2 7.0.0-rc3 7.0.1 7.0.10 7.0.11 7.0.2 7.0.3 7.0.4 7.0.5 7.0.6 7.0.7 7.0.8 7.0.9 7.1.0 7.1.1 trunk 3.0 4.0 4.0.1 4.1 4.2 4.3 4.4 4.4.1 4.5 4.6 4.6.1 4.6.2 4.7 4.7.1 4.7.2 4.7.5 4.7.6 4.8 4.8.1 4.9 4.9.1 4.9.2 4.9.3 4.9.4 4.9.5 4.9.5.1 4.9.5.2 5.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1 5.1.1 5.10 5.11 5.2 5.2.1 5.2.5 5.2.6 5.2.7 5.3 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.4 5.4.1 5.4.2 5.4.3 5.4.3.1 5.4.3.2 5.5 5.5.1 5.5.2 5.6 5.6.1 5.6.1.1 5.7 5.7.1 5.7.2 5.7.3 5.8 5.8.1 5.8.2 5.8.3 5.9 5.9.1 5.9.1.1 5.9.2 5.9.2.1 5.9.3 5.9.4 5.9.5 5.9.6 5.9.6.1 5.9.6.2 5.9.6.3 5.9.7 5.9.7.1 5.9.7.2 5.9.7.3 5.9.8 5.9.8.1 5.9.9 5.9.9.1 6.0.0 6.0.1 6.0.2 6.0.3 6.0.4 6.0.5 6.1.0 6.1.1 6.2.0 6.2.1 6.2.2 6.3.0 6.3.1 6.3.2 6.3.3 6.4.0 6.4.1 6.4.2 6.4.3 6.5.0 6.5.1 6.5.2 6.5.3 6.5.4 6.6.0 6.6.1 6.6.2 6.6.3 6.6.4 6.7.0 6.7.1 6.7.2 6.7.3 6.7.4 6.7.5 6.7.6 6.7.7 6.7.8 6.7.9 6.8.0 6.8.1 6.8.2 6.8.3
advanced-access-manager / Application / Core / Object / Metabox.php
advanced-access-manager / Application / Core / Object Last commit date
Capability.php 8 years ago LoginRedirect.php 8 years ago LogoutRedirect.php 8 years ago Menu.php 8 years ago Metabox.php 8 years ago Post.php 8 years ago Redirect.php 8 years ago
Metabox.php
157 lines
1 <?php
2
3 /**
4 * ======================================================================
5 * LICENSE: This file is subject to the terms and conditions defined in *
6 * file 'license.txt', which is part of this source code package. *
7 * ======================================================================
8 */
9
10 /**
11 * Metabox object
12 *
13 * @package AAM
14 * @author Vasyl Martyniuk <vasyl@vasyltech.com>
15 */
16 class AAM_Core_Object_Metabox extends AAM_Core_Object {
17
18 /**
19 * Constructor
20 *
21 * @param AAM_Core_Subject $subject
22 *
23 * @return void
24 *
25 * @access public
26 */
27 public function __construct(AAM_Core_Subject $subject) {
28 parent::__construct($subject);
29
30 $option = $this->getSubject()->readOption('metabox');
31
32 if (empty($option)) {
33 $option = $this->getSubject()->inheritFromParent('metabox');
34 } else {
35 $this->setOverwritten(true);
36 }
37
38 $this->setOption($option);
39 }
40
41 /**
42 *
43 * @global type $wp_registered_widgets
44 * @param type $sidebar_widgets
45 * @return type
46 */
47 public function filterFrontend($sidebar_widgets) {
48 global $wp_registered_widgets;
49
50 if (is_array($wp_registered_widgets)) {
51 foreach ($wp_registered_widgets as $id => $widget) {
52 $callback = $this->getWidgetCallback($widget);
53 if ($this->has('widgets', $callback)) {
54 unregister_widget($callback);
55 //remove it from registered widget global var!!
56 //INFORM: Why Unregister Widget does not clear global var?
57 unset($wp_registered_widgets[$id]);
58 }
59 }
60 }
61
62 return $sidebar_widgets;
63 }
64
65 /**
66 *
67 * @param type $widget
68 * @return type
69 */
70 protected function getWidgetCallback($widget) {
71 if (is_object($widget['callback'][0])) {
72 $callback = get_class($widget['callback'][0]);
73 } elseif (is_string($widget['callback'][0])) {
74 $callback = $widget['callback'][0];
75 } else {
76 $callback = null;
77 }
78
79 return $callback;
80 }
81
82 /**
83 *
84 * @global type $wp_meta_boxes
85 * @param type $screen
86 */
87 public function filterBackend($screen) {
88 global $wp_meta_boxes;
89
90 if (is_array($wp_meta_boxes)) {
91 foreach ($wp_meta_boxes as $screen_id => $zones) {
92 if ($screen == $screen_id) {
93 $this->filterZones($zones, $screen_id);
94 }
95 }
96 }
97 }
98
99 /**
100 *
101 * @param type $zones
102 * @param type $screen_id
103 */
104 protected function filterZones($zones, $screen_id) {
105 foreach ($zones as $zone => $priorities) {
106 foreach ($priorities as $metaboxes) {
107 $this->filterMetaboxes($zone, $metaboxes, $screen_id);
108 }
109 }
110 }
111
112 /**
113 *
114 * @param type $zone
115 * @param type $metaboxes
116 * @param type $screen_id
117 */
118 protected function filterMetaboxes($zone, $metaboxes, $screen_id) {
119 foreach (array_keys($metaboxes) as $metabox) {
120 if ($this->has($screen_id, $metabox)) {
121 remove_meta_box($metabox, $screen_id, $zone);
122 }
123 }
124 }
125
126 /**
127 * @inheritdoc
128 */
129 public function save($metabox, $granted) {
130 $param = explode('|', $metabox);
131 $option = $this->getOption();
132
133 $option[$param[0]][$param[1]] = $granted;
134
135 return $this->getSubject()->updateOption($option, 'metabox');
136 }
137
138 /**
139 *
140 */
141 public function reset() {
142 return $this->getSubject()->deleteOption('metabox');
143 }
144
145 /**
146 *
147 * @param type $screen
148 * @param type $metabox
149 * @return type
150 */
151 public function has($screen, $metabox) {
152 $options = $this->getOption();
153
154 return !empty($options[$screen][$metabox]);
155 }
156
157 }