public function to_html() { $settings = $this->data['settings']; $fields = array('plugin_enabled' => array('id' => 'plugin_enabled', 'type' => MS_Helper_Html::INPUT_TYPE_RADIO_SLIDER, 'title' => __('Content Protection', 'membership2'), 'desc' => __('This setting toggles the content protection on this site.', 'membership2'), 'value' => MS_Plugin::is_enabled(), 'data_ms' => array('action' => MS_Controller_Settings::AJAX_ACTION_TOGGLE_SETTINGS, 'setting' => 'plugin_enabled')), 'hide_admin_bar' => array('id' => 'hide_admin_bar', 'type' => MS_Helper_Html::INPUT_TYPE_RADIO_SLIDER, 'title' => __('Hide admin toolbar', 'membership2'), 'desc' => __('Hide the admin toolbar for non administrator users.', 'membership2'), 'value' => $settings->hide_admin_bar, 'data_ms' => array('action' => MS_Controller_Settings::AJAX_ACTION_TOGGLE_SETTINGS, 'setting' => 'hide_admin_bar'))); $fields = apply_filters('ms_view_settings_prepare_general_fields', $fields); $setup = MS_Factory::create('MS_View_Settings_Page_Setup'); $action_url = esc_url_raw(remove_query_arg(array('msg'))); ob_start(); MS_Helper_Html::settings_tab_header(); ?> <form action="<?php echo esc_url($action_url); ?> " method="post" class="cf"> <div class="cf"> <div class="ms-half"> <?php MS_Helper_Html::html_element($fields['plugin_enabled']); ?> </div> <div class="ms-half"> <?php MS_Helper_Html::html_element($fields['hide_admin_bar']); ?> </div> </div> <?php MS_Helper_Html::html_separator(); MS_Helper_Html::html_element($setup->html_full_form()); ?> </form> <?php return ob_get_clean(); }
/** * Initialize the Shortcodes after we have determined the current user. * * @since 1.0.0 */ public function init() { // By default assume no content for the protected-content code add_shortcode(MS_Helper_Shortcode::SCODE_PROTECTED, array($this, '__return_null')); if (MS_Plugin::is_enabled()) { add_shortcode(MS_Helper_Shortcode::SCODE_REGISTER_USER, array($this, 'membership_register_user')); add_shortcode(MS_Helper_Shortcode::SCODE_SIGNUP, array($this, 'membership_signup')); add_shortcode(MS_Helper_Shortcode::SCODE_MS_TITLE, array($this, 'membership_title')); add_shortcode(MS_Helper_Shortcode::SCODE_MS_PRICE, array($this, 'membership_price')); add_shortcode(MS_Helper_Shortcode::SCODE_MS_BUY, array($this, 'membership_buy')); add_shortcode(MS_Helper_Shortcode::SCODE_MS_DETAILS, array($this, 'membership_details')); add_shortcode(MS_Helper_Shortcode::SCODE_LOGIN, array($this, 'membership_login')); add_shortcode(MS_Helper_Shortcode::SCODE_LOGOUT, array($this, 'membership_logout')); add_shortcode(MS_Helper_Shortcode::SCODE_MS_ACCOUNT, array($this, 'membership_account')); add_shortcode(MS_Helper_Shortcode::SCODE_MS_ACCOUNT_LINK, array($this, 'membership_account_link')); add_shortcode(MS_Helper_Shortcode::SCODE_MS_INVOICE, array($this, 'membership_invoice')); add_shortcode(MS_Helper_Shortcode::SCODE_NOTE, array($this, 'ms_note')); add_shortcode(MS_Helper_Shortcode::SCODE_GREEN_NOTE, array($this, 'ms_green_note')); add_shortcode(MS_Helper_Shortcode::SCODE_RED_NOTE, array($this, 'ms_red_note')); add_shortcode(MS_Helper_Shortcode::SCODE_USER, array($this, 'show_to_user')); add_shortcode(MS_Helper_Shortcode::SCODE_MEMBER_INFO, array($this, 'ms_member_info')); if (MS_Model_Member::is_normal_admin()) { add_shortcode(MS_Rule_Shortcode_Model::PROTECT_CONTENT_SHORTCODE, array('MS_Rule_Shortcode_Model', 'debug_protect_content_shortcode')); } } else { $shortcodes = array(MS_Helper_Shortcode::SCODE_REGISTER_USER, MS_Helper_Shortcode::SCODE_SIGNUP, MS_Helper_Shortcode::SCODE_MS_TITLE, MS_Helper_Shortcode::SCODE_MS_PRICE, MS_Helper_Shortcode::SCODE_MS_DETAILS, MS_Helper_Shortcode::SCODE_LOGIN, MS_Helper_Shortcode::SCODE_LOGOUT, MS_Helper_Shortcode::SCODE_MS_ACCOUNT, MS_Helper_Shortcode::SCODE_MS_ACCOUNT_LINK, MS_Helper_Shortcode::SCODE_MS_INVOICE, MS_Helper_Shortcode::SCODE_NOTE, MS_Helper_Shortcode::SCODE_GREEN_NOTE, MS_Helper_Shortcode::SCODE_RED_NOTE); foreach ($shortcodes as $shortcode) { add_shortcode($shortcode, array($this, 'ms_no_value')); } add_shortcode(MS_Rule_Shortcode_Model::PROTECT_CONTENT_SHORTCODE, array($this, 'hide_shortcode')); add_shortcode(MS_Helper_Shortcode::SCODE_USER, array($this, 'hide_shortcode')); } }
/** * Prepare the metabox. * * @since 1.0.0 */ public function __construct() { parent::__construct(); $this->metabox_title = __('Membership Access', 'membership2'); $post_types = array_merge(array('page', 'post', 'attachment'), array()); $this->post_types = apply_filters('ms_controller_membership_metabox_add_meta_boxes_post_types', $post_types); if (!MS_Plugin::is_enabled()) { return $this; } $this->add_action('add_meta_boxes', 'add_meta_boxes', 10); $this->add_action('admin_enqueue_scripts', 'admin_enqueue_scripts'); $this->add_ajax_action(self::AJAX_ACTION_TOGGLE_ACCESS, 'ajax_action_toggle_metabox_access'); // Populates the WP editor with default contents of a page $this->add_action('the_editor_content', 'show_default_content'); }
/** * Prepare for Member registration. * * @since 1.0.0 */ public function __construct() { parent::__construct(); if (MS_Plugin::is_enabled()) { do_action('ms_controller_frontend_construct', $this); // Process actions like register new account. $this->add_action('template_redirect', 'process_actions', 1); // Check if the current page is a Membership Page. $this->add_action('template_redirect', 'check_for_membership_pages', 2); // Propagates SSL cookies when user logs in. $this->add_action('wp_login', 'propagate_ssl_cookie', 10, 2); // Enqueue scripts. $this->add_action('wp_enqueue_scripts', 'enqueue_scripts'); // Add classes for all memberships the user is registered to. $this->add_filter('body_class', 'body_class'); // Clears the shortcode memory at the beginning of the_content $this->add_filter('the_content', 'clear_content_memory', 1); // Compact code for output on the front end. add_filter('ms_compact_code', array('MS_Helper_Html', 'compact_code')); /** * This allows WordPress to provide the default register form. * * Set the filter response to FALSE to stop Membership2 from * handling the registration process. WordPress or other plugins can * register users in that case. * * @since 1.0.0 */ self::$handle_registration = apply_filters('ms_frontend_handle_registration', true); if (self::$handle_registration) { // Set the registration URL to the 'Register' Membership Page. $this->add_filter('wp_signup_location', 'signup_location', 999); $this->add_filter('register_url', 'signup_location', 999); } // Redirect users to their Account page after login. $this->add_filter('login_redirect', 'login_redirect', 10, 3); $this->add_action('wp_logout', 'logout_redirect', 10); } }
/** * Add 'Unprotected' node. * * @since 1.0.0 * */ private function add_unprotected_node() { global $wp_admin_bar; if (MS_Plugin::is_enabled()) { return; } if (MS_Plugin::is_wizard()) { return; } $link_url = MS_Controller_Plugin::get_admin_url('settings'); $wp_admin_bar->add_node(apply_filters('ms_controller_adminbar_add_unprotected_node', array('id' => 'ms-unprotected', 'title' => __('Content Protection is disabled', 'membership2'), 'href' => $link_url, 'meta' => array('class' => 'ms-unprotected', 'title' => __('Content of this site is unprotected', 'membership2'), 'tabindex' => '1')))); }
/** * Initialise current member. * * Get current member and membership relationships. * If user is not logged in (visitor), assign a visitor membership. * If user is logged in but has not any memberships, assign a default membership. * Deactivated users (active == false) get visitor membership assigned. * * @since 1.0.0 */ public function init_member() { do_action('ms_load_member', $this); $this->member = MS_Model_Member::get_current_member(); if (MS_Plugin::is_enabled()) { if (!is_user_logged_in()) { // If a Guest-Membership exists we also assign it to the user. $ms_guest = MS_Model_Membership::get_guest(); if ($ms_guest->is_valid() && $ms_guest->active) { $this->member->add_membership($ms_guest->id); } } elseif (!$this->member->has_membership()) { // Apply User-Membership to logged-in users without subscriptions. $ms_user = MS_Model_Membership::get_user(); if ($ms_user->is_valid() && $ms_user->active) { $this->member->add_membership($ms_user->id); } } elseif (!$this->member->is_member) { $this->member->subscriptions = array(); } // No subscription: Assign the base membership, which only denies access. if (!$this->member->has_membership()) { $this->member->add_membership(MS_Model_Membership::get_base()->id); } } /** * At this point the plugin is initialized and we are here: * - All Add-Ons are registered * - All Rules are registered * - Know the current User * - All Subscriptions/Memberships of the user are loaded * - System memberships are already assigned (guest/base) * - Payment gateways are registered * - Communication settings are loaded * * Next we tell everybody that we are ready to get serious! * * What happens next: * 1. All Membership-Rules are initialized/merged * 2. Front-End Protection is applied * 3. Admin-Side Protection is applied */ do_action('ms_init_done', $this); }