* @copyright Copyright (c) 2009 - 2018, Justin Tadlock * @link https://themehybrid.com/plugins/members * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html */ namespace Members\Admin; /** * Sets up and handles the general settings view. * * @since 2.0.0 * @access public */ class View_General extends View { /** * Holds an array the plugin settings. * * @since 2.0.0 * @access public * @var array */ public $settings = array(); /** * Enqueue scripts/styles. * * @since 2.0.0 * @access public * @return void */ public function enqueue() { wp_enqueue_script( 'members-settings' ); } /** * Registers the plugin settings. * * @since 2.0.0 * @access public * @return void */ function register_settings() { // Get the current plugin settings w/o the defaults. $this->settings = get_option( 'members_settings' ); // Register the setting. register_setting( 'members_settings', 'members_settings', array( $this, 'validate_settings' ) ); /* === Settings Sections === */ // Add settings sections. add_settings_section( 'roles_caps', esc_html__( 'Roles and Capabilities', 'members' ), array( $this, 'section_roles_caps' ), 'members-settings' ); add_settings_section( 'content_permissions', esc_html__( 'Content Permissions', 'members' ), '__return_false', 'members-settings' ); add_settings_section( 'private_site', esc_html__( 'Private Site', 'members' ), '__return_false', 'members-settings' ); /* === Settings Fields === */ // Role manager fields. add_settings_field( 'enable_role_manager', esc_html__( 'Role Manager', 'members' ), array( $this, 'field_enable_role_manager' ), 'members-settings', 'roles_caps' ); add_settings_field( 'enable_multi_roles', esc_html__( 'Multiple User Roles', 'members' ), array( $this, 'field_enable_multi_roles' ), 'members-settings', 'roles_caps' ); add_settings_field( 'explicit_denied_caps', esc_html__( 'Capabilities', 'members' ), array( $this, 'field_explicit_denied_caps' ), 'members-settings', 'roles_caps' ); // Content permissions fields. add_settings_field( 'enable_content_permissions', esc_html__( 'Enable Permissions', 'members' ), array( $this, 'field_enable_content_permissions' ), 'members-settings', 'content_permissions' ); add_settings_field( 'content_permissions_error', esc_html__( 'Error Message', 'members' ), array( $this, 'field_content_permissions_error' ), 'members-settings', 'content_permissions' ); // Private site fields. add_settings_field( 'enable_private_site', esc_html__( 'Enable Private Site', 'members' ), array( $this, 'field_enable_private_site' ), 'members-settings', 'private_site' ); add_settings_field( 'private_rest_api', esc_html__( 'REST API', 'members' ), array( $this, 'field_private_rest_api' ), 'members-settings', 'private_site' ); add_settings_field( 'enable_private_feed', esc_html__( 'Disable Feed', 'members' ), array( $this, 'field_enable_private_feed' ), 'members-settings', 'private_site' ); add_settings_field( 'private_feed_error', esc_html__( 'Feed Error Message', 'members' ), array( $this, 'field_private_feed_error' ), 'members-settings', 'private_site' ); do_action( 'members_register_settings' ); } /** * Validates the plugin settings. * * @since 2.0.0 * @access public * @param array $input * @return array */ function validate_settings( $settings ) { // Validate true/false checkboxes. $settings['role_manager'] = ! empty( $settings['role_manager'] ) ? true : false; $settings['explicit_denied_caps'] = ! empty( $settings['explicit_denied_caps'] ) ? true : false; $settings['show_human_caps'] = ! empty( $settings['show_human_caps'] ) ? true : false; $settings['multi_roles'] = ! empty( $settings['multi_roles'] ) ? true : false; $settings['content_permissions'] = ! empty( $settings['content_permissions'] ) ? true : false; $settings['private_blog'] = ! empty( $settings['private_blog'] ) ? true : false; $settings['private_rest_api'] = ! empty( $settings['private_rest_api'] ) ? true : false; $settings['private_feed'] = ! empty( $settings['private_feed'] ) ? true : false; // Kill evil scripts. $settings['content_permissions_error'] = stripslashes( wp_filter_post_kses( addslashes( $settings['content_permissions_error'] ) ) ); $settings['private_feed_error'] = stripslashes( wp_filter_post_kses( addslashes( $settings['private_feed_error'] ) ) ); // Return the validated/sanitized settings. return apply_filters( 'members_validate_settings', $settings ); } /** * Role/Caps section callback. * * @since 2.0.0 * @access public * @return void */ public function section_roles_caps() { ?>

'members_settings[content_permissions_error]', 'drag_drop_upload' => true, 'editor_height' => 250 ) ); } /** * Enable private site field callback. * * @since 2.0.0 * @access public * @return void */ public function field_enable_private_site() { ?> 'members_settings[private_feed_error]', 'drag_drop_upload' => true, 'editor_height' => 250 ) ); } /** * Renders the settings page. * * @since 2.0.0 * @access public * @return void */ public function template() { ?>
add_help_tab( array( 'id' => 'roles-caps', 'title' => esc_html__( 'Role and Capabilities', 'members' ), 'callback' => array( $this, 'help_tab_roles_caps' ) ) ); // Content Permissions help tab. $screen->add_help_tab( array( 'id' => 'content-permissions', 'title' => esc_html__( 'Content Permissions', 'members' ), 'callback' => array( $this, 'help_tab_content_permissions' ) ) ); // Widgets help tab. $screen->add_help_tab( array( 'id' => 'sidebar-widgets', 'title' => esc_html__( 'Sidebar Widgets', 'members' ), 'callback' => array( $this, 'help_tab_sidebar_widgets' ) ) ); // Private Site help tab. $screen->add_help_tab( array( 'id' => 'private-site', 'title' => esc_html__( 'Private Site', 'members' ), 'callback' => array( $this, 'help_tab_private_site' ) ) ); // Set the help sidebar. $screen->set_help_sidebar( members_get_help_sidebar_text() ); } /** * Displays the roles/caps help tab. * * @since 2.0.0 * @access public * @return void */ public function help_tab_roles_caps() { ?>

restrict_content' ); ?>