File: /home/www/web115/wordpress/wp-content/plugins/members/admin/functions-settings.php
<?php
/**
* Handles settings functionality.
*
* @package Members
* @subpackage Admin
* @author Justin Tadlock <justintadlock@gmail.com>
* @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
*/
# Register settings views.
add_action( 'members_register_settings_views', 'members_register_default_settings_views', 5 );
/**
* Registers the plugin's built-in settings views.
*
* @since 2.0.0
* @access public
* @param object $manager
* @return void
*/
function members_register_default_settings_views( $manager ) {
// Bail if not on the settings screen.
if ( 'members-settings' !== $manager->name )
return;
// Register general settings view (default view).
$manager->register_view(
new \Members\Admin\View_General(
'general',
array(
'label' => esc_html__( 'General', 'members' ),
'priority' => 0
)
)
);
// Register add-ons view.
$manager->register_view(
new \Members\Admin\View_Addons(
'add-ons',
array(
'label' => esc_html__( 'Add-Ons', 'members' ),
'priority' => 95
)
)
);
}
/**
* Conditional function to check if on the plugin's settings page.
*
* @since 2.0.0
* @access public
* @return bool
*/
function members_is_settings_page() {
$screen = get_current_screen();
$prefix = 'members';
return is_object( $screen ) && ( $prefix . '_page_members-settings' === $screen->id || 'admin_page_members-settings' === $screen->id );
}
/**
* Conditional function to check if an add-on is active.
*
* @since 2.3.0
* @access public
* @param string $addon Add-on name/key (e.g. members-block-permissions)
* @return bool
*/
function members_is_addon_active( $addon ) {
return in_array( $addon, get_option( 'members_active_addons', array() ) );
}
/**
* Returns the URL to the settings page.
*
* @since 2.0.0
* @access public
* @return string
*/
function members_get_settings_page_url() {
return add_query_arg( array( 'page' => 'members-settings' ), admin_url( 'admin.php' ) );
}
/**
* Returns the URL to a settings view page.
*
* @since 2.0.0
* @access public
* @param string $view
* @return string
*/
function members_get_settings_view_url( $view ) {
return add_query_arg( array( 'view' => sanitize_key( $view ) ), members_get_settings_page_url() );
}
/**
* Returns the current settings view name.
*
* @since 2.0.0
* @access public
* @return string
*/
function members_get_current_settings_view() {
if ( ! members_is_settings_page() )
return '';
return isset( $_GET['view'] ) ? sanitize_key( $_GET['view'] ) : 'general';
}
/**
* Conditional function to check if on a specific settings view page.
*
* @since 2.0.0
* @access public
* @param string $view
* @return bool
*/
function members_is_settings_view( $view = '' ) {
return members_is_settings_page() && $view === members_get_current_settings_view();
}