/** * @hook hw_sidebars_widgets * @param $sidebars */ public static function _sidebars_widgets($sidebars) { if (is_admin()) { return $sidebars; } global $wp_registered_widgets; foreach ($sidebars as $s => $sidebar) { if ($s == 'wp_inactive_widgets' || strpos($s, 'orphaned_widgets') === 0 || empty($sidebar)) { continue; } foreach ($sidebar as $w => $widget) { // $widget is the id of the widget if (!isset($wp_registered_widgets[$widget])) { continue; } if (isset(self::$checked[$widget])) { $show = self::$checked[$widget]; } else { $widget_info = HW_AWC::get_widget_data($widget); $opts = $wp_registered_widgets[$widget]; $widget_obj = isset($widget_info['widget']) ? $widget_info['widget'] : null; $id_base = isset($widget_info['id_base']) ? $widget_info['id_base'] : ''; #$id_base = is_array( $opts['callback'] ) ? $opts['callback'][0]->id_base : $opts['callback']; if (!$id_base) { continue; } $feature = HW_AWC::get_widget_feature($widget, self::_static_option('feature_name')); # if (!$feature || HW_AWC_WidgetFeatures::check_widget_feature($widget, self::_static_option('feature_name') && !$feature->is_active())) { continue; } #$instance = get_option( 'widget_' . $id_base ); $instance = $widget_info['instance']; if (!$instance || !is_array($instance)) { continue; } //from 'display widgets' plugin if (isset($instance['_multiwidget']) && $instance['_multiwidget']) { $number = $opts['params'][0]['number']; if (!isset($instance[$number])) { continue; } $instance = $instance[$number]; unset($number); } unset($opts); $show = self::show_widget($feature, $instance); self::$checked[$widget] = $show ? true : false; } if (!$show) { unset($sidebars[$s][$w]); #$this->hide_list[] = "['$s'][$w]"; } unset($widget); } unset($sidebar); } return $sidebars; }