* @copyright Copyright (c) 2017, Justin Tadlock * @link http://themehybrid.com/plugins/members-role-hierarchy * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html */ # Register settings on `admin_init`. add_action( 'admin_init', 'mrh_register_settings', 15 ); /** * Registers plugin settings and adds custom settings fields to the Members Settings * screen in the admin. * * @since 1.0.0 * @access public * @return void */ function mrh_register_settings() { // Register our plugin setting to the `members_settings` group (defined in Members plugin). register_setting( 'members_settings', 'mrh_plugin_settings', 'mrh_validate_settings' ); // Adds the Role Hierarchy setting field. add_settings_field( 'mrh_role_hierarchy', esc_html__( 'Role Hierarchy', 'members' ), 'mrh_settings_field_hierarchy', 'admin_page_members-settings', 'roles_caps' ); } /** * Callback function for validating plugin settings. * * @since 1.0.0 * @access public * @param array $settings * @return array */ function mrh_validate_settings( $settings ) { $allowed = array( '>', '>=' ); $settings['comparison_operator'] = isset( $settings['comparison_operater'] ) && in_array( $settings['comparison_operater'], $allowed ) ? $settings['comparison_operater'] : '>'; return $settings; } /** * Outputs the hierarchy settings field. * * @since 1.0.0 * @access public * @return void */ function mrh_settings_field_hierarchy() { $exceptions = array(); foreach ( mrh_get_highest_roles() as $role ) $exceptions[] = "{$role}"; ?>