Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
 /**
  * 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));
 }