function can_view_current_page() { global $wp_query, $M_options, $M_previous_positive, $M_previous_negative; $valid = true; $global = Membership_Plugin::is_global_tables() ? MEMBERSHIP_GLOBAL_MAINSITE != get_current_blog_id() : false; // validate positive rules foreach ($this->positiverules as $key => $rule) { if ($global && !$rule->is_network_wide()) { continue; } if (method_exists(get_class($rule), 'alter_positive_queries')) { $rule->alter_positive_queries(); } $M_previous_positive[$key]['name'] = $rule->name; $M_previous_positive[$key]['cascade'] = $this->allow_page_cascade; $M_previous_positive[$key]['result'] = $rule->validate_positive($M_previous_positive); $M_previous_positive[$key]['data'] = $rule->get_data(); $valid = $M_previous_positive[$key]['result']; if (!$M_previous_positive[$key]['result']) { if (!in_array($rule->name, array('posts', 'categories'))) { break; } } } if ($valid) { // validate negative rules foreach ($this->negativerules as $key => $rule) { if ($global && !$rule->is_network_wide()) { continue; } $M_previous_negative[$key]['name'] = $rule->name; $M_previous_negative[$key]['cascade'] = $this->allow_page_cascade; $M_previous_negative[$key]['result'] = $rule->validate_negative($M_previous_negative); $M_previous_negative[$key]['data'] = $rule->get_data(); $valid = $M_previous_negative[$key]['result']; if (!$M_previous_negative[$key]['result']) { if (!in_array($rule->name, array('posts', 'categories'))) { break; } } } } // Are we protecting the front page? $protect_front_page = isset($M_options['protect_front_page']) && 'yes' == $M_options['protect_front_page'] ? true : false; $protect_front_page = apply_filters('membership_protect_front_page', $protect_front_page); if ((is_home() || is_front_page()) && !$protect_front_page) { return true; } return $valid; }
/** * Adds "Enable Protection" menu to admin bar. * * @since 3.5 * @action admin_bar_menu * * @access public * @param WP_Admin_Bar $wp_admin_bar Admin bar object. */ public function add_enabled_protection_menu(WP_Admin_Bar $wp_admin_bar) { $linkurl = "admin.php?page=membership&action=activate"; $linkurl = Membership_Plugin::is_global_tables() ? network_admin_url($linkurl, is_ssl() ? 'https' : 'http') : admin_url($linkurl, is_ssl() ? 'https' : 'http'); $linkurl = wp_nonce_url($linkurl, 'toggle-plugin'); $wp_admin_bar->add_menu(array('id' => 'membership', 'parent' => 'top-secondary', 'title' => __('Membership', 'membership') . ' : <span style="color:red;text-shadow:none">' . __('Disabled', 'membership') . "</span>", 'href' => $linkurl, 'meta' => array('title' => __('Click to Enable the Membership protection', 'membership')))); $wp_admin_bar->add_menu(array('parent' => 'membership', 'id' => 'membershipenable', 'title' => __('Enable Membership', 'membership'), 'href' => $linkurl)); }