function widget($args, $instance) { extract($args); // build the check array $defaults = array('title' => '', 'content' => '', 'level' => 'none'); foreach ($defaults as $key => $value) { if (isset($instance[$key])) { $defaults[$key] = $instance[$key]; } } extract($defaults); $show = false; switch ($level) { case 'none': if (!is_user_logged_in() || !current_user_is_member()) { $show = true; } break; default: if (current_user_on_level($level)) { $show = true; } break; } if ($show) { echo $before_widget; $title = apply_filters('widget_title', $title); if (!empty($title)) { echo $before_title . $title . $after_title; } echo do_shortcode($content); echo $after_widget; } }
/** * Tests if the current user has a specific membership level. * * @since 1.0.0 * @param array $data Contains the element ['membership_lvl'] * @return boolean */ protected function user_has_level($data) { $result = false; if ($this->is_active) { $data = lib2()->array->get($data); lib2()->array->equip($data, 'membership_lvl'); $data['membership_lvl'] = lib2()->array->get($data['membership_lvl']); foreach ($data['membership_lvl'] as $level) { if (current_user_on_level($level)) { $result = true; break; } } } return $result; }