Пример #1
0
/**
 * Updates plugin settings if there are new settings to add.
 *
 * @since 0.2.0
 */
function members_update()
{
    /* Update the database version setting. */
    update_option('members_db_version', MEMBERS_DB_VERSION);
    /* Get the settings from the database. */
    $settings = get_option('members_settings');
    /* Get the default plugin settings. */
    $default_settings = members_get_default_settings();
    /* Loop through each of the default plugin settings. */
    foreach ($default_settings as $setting_key => $setting_value) {
        /* If the setting didn't previously exist, add the default value to the $settings array. */
        if (!isset($settings[$setting_key])) {
            $settings[$setting_key] = $setting_value;
        }
    }
    /* Update the plugin settings. */
    update_option('members_settings', $settings);
}
Пример #2
0
/**
 * Initializes and sets up the main plugin settings page.
 *
 * @since 0.2.0
 */
function members_settings_page_setup()
{
    global $members;
    /* If no settings are available, add the default settings to the database. */
    if (false === get_option('members_settings')) {
        add_option('members_settings', members_get_default_settings(), '', 'yes');
    }
    /* Register the plugin settings. */
    add_action('admin_init', 'members_register_settings');
    /* Add Members settings page. */
    $members->settings_page = add_submenu_page('options-general.php', esc_attr__('Members Settings', 'members'), esc_attr__('Members', 'members'), apply_filters('members_settings_capability', 'manage_options'), 'members-settings', 'members_settings_page');
    /* Add media for the settings page. */
    add_action('admin_enqueue_scripts', 'members_admin_enqueue_style');
    add_action('admin_enqueue_scripts', 'members_settings_page_media');
    add_action("admin_head-{$members->settings_page}", 'members_settings_page_scripts');
    /* Load the meta boxes. */
    add_action("load-{$members->settings_page}", 'members_settings_page_load_meta_boxes');
    /* Create a hook for adding meta boxes. */
    add_action("load-{$members->settings_page}", 'members_settings_page_add_meta_boxes');
}
/**
 * Gets a setting from from the plugin settings in the database.
 *
 * @since  0.2.0
 * @access public
 * @return mixed
 */
function members_get_setting($option = '')
{
    $defaults = members_get_default_settings();
    $settings = wp_parse_args(get_option('members_settings', $defaults), $defaults);
    return isset($settings[$option]) ? $settings[$option] : false;
}