/**
 * Options Page
 *
 * Renders the options page contents.
 *
 * @since 1.0
 * @global $edd_options Array of all the EDD Options
 * @return void
 */
function edd_options_page()
{
    global $edd_options;
    $active_tab = isset($_GET['tab']) && array_key_exists($_GET['tab'], edd_get_settings_tabs()) ? $_GET['tab'] : 'general';
    ob_start();
    ?>
	<div class="wrap">
		<h2 class="nav-tab-wrapper">
			<?php 
    foreach (edd_get_settings_tabs() as $tab_id => $tab_name) {
        $tab_url = add_query_arg(array('settings-updated' => false, 'tab' => $tab_id));
        $active = $active_tab == $tab_id ? ' nav-tab-active' : '';
        echo '<a href="' . esc_url($tab_url) . '" title="' . esc_attr($tab_name) . '" class="nav-tab' . $active . '">';
        echo esc_html($tab_name);
        echo '</a>';
    }
    ?>
		</h2>
		<div id="tab_container">
			<form method="post" action="options.php">
				<table class="form-table">
				<?php 
    settings_fields('edd_settings');
    do_settings_fields('edd_settings_' . $active_tab, 'edd_settings_' . $active_tab);
    ?>
				</table>
				<?php 
    submit_button();
    ?>
			</form>
		</div><!-- #tab_container-->
	</div><!-- .wrap -->
	<?php 
    echo ob_get_clean();
}
/**
 * Options Page
 *
 * Renders the options page contents.
 *
 * @since 1.0
 * @return void
 */
function edd_options_page()
{
    $settings_tabs = edd_get_settings_tabs();
    $settings_tabs = empty($settings_tabs) ? array() : $settings_tabs;
    $active_tab = isset($_GET['tab']) ? sanitize_text_field($_GET['tab']) : 'general';
    $active_tab = array_key_exists($active_tab, $settings_tabs) ? $active_tab : 'general';
    $sections = edd_get_settings_tab_sections($active_tab);
    $key = 'main';
    if (is_array($sections)) {
        $key = key($sections);
    }
    $registered_sections = edd_get_settings_tab_sections($active_tab);
    $section = isset($_GET['section']) && !empty($registered_sections) && array_key_exists($_GET['section'], $registered_sections) ? sanitize_text_field($_GET['section']) : $key;
    // Unset 'main' if it's empty and default to the first non-empty if it's the chosen section
    $all_settings = edd_get_registered_settings();
    // Let's verify we have a 'main' section to show
    $has_main_settings = true;
    if (empty($all_settings[$active_tab]['main'])) {
        $has_main_settings = false;
    }
    // Check for old non-sectioned settings (see #4211 and #5171)
    if (!$has_main_settings) {
        foreach ($all_settings[$active_tab] as $sid => $stitle) {
            if (is_string($sid) && is_array($sections) && array_key_exists($sid, $sections)) {
                continue;
            } else {
                $has_main_settings = true;
                break;
            }
        }
    }
    $override = false;
    if (false === $has_main_settings) {
        unset($sections['main']);
        if ('main' === $section) {
            foreach ($sections as $section_key => $section_title) {
                if (!empty($all_settings[$active_tab][$section_key])) {
                    $section = $section_key;
                    $override = true;
                    break;
                }
            }
        }
    }
    ob_start();
    ?>
	<div class="wrap <?php 
    echo 'wrap-' . $active_tab;
    ?>
">
		<h1 class="nav-tab-wrapper">
			<?php 
    foreach (edd_get_settings_tabs() as $tab_id => $tab_name) {
        $tab_url = add_query_arg(array('settings-updated' => false, 'tab' => $tab_id));
        // Remove the section from the tabs so we always end up at the main section
        $tab_url = remove_query_arg('section', $tab_url);
        $active = $active_tab == $tab_id ? ' nav-tab-active' : '';
        echo '<a href="' . esc_url($tab_url) . '" class="nav-tab' . $active . '">';
        echo esc_html($tab_name);
        echo '</a>';
    }
    ?>
		</h1>
		<?php 
    $number_of_sections = count($sections);
    $number = 0;
    if ($number_of_sections > 1) {
        echo '<div><ul class="subsubsub">';
        foreach ($sections as $section_id => $section_name) {
            echo '<li>';
            $number++;
            $tab_url = add_query_arg(array('settings-updated' => false, 'tab' => $active_tab, 'section' => $section_id));
            $class = '';
            if ($section == $section_id) {
                $class = 'current';
            }
            echo '<a class="' . $class . '" href="' . esc_url($tab_url) . '">' . $section_name . '</a>';
            if ($number != $number_of_sections) {
                echo ' | ';
            }
            echo '</li>';
        }
        echo '</ul></div>';
    }
    ?>
		<div id="tab_container">
			<form method="post" action="options.php">
				<table class="form-table">
				<?php 
    settings_fields('edd_settings');
    if ('main' === $section) {
        do_action('edd_settings_tab_top', $active_tab);
    }
    do_action('edd_settings_tab_top_' . $active_tab . '_' . $section);
    do_settings_sections('edd_settings_' . $active_tab . '_' . $section);
    do_action('edd_settings_tab_bottom_' . $active_tab . '_' . $section);
    // For backwards compatibility
    if ('main' === $section) {
        do_action('edd_settings_tab_bottom', $active_tab);
    }
    // If the main section was empty and we overrode the view with the next subsection, prepare the section for saving
    if (true === $override) {
        ?>
<input type="hidden" name="edd_section_override" value="<?php 
        echo $section;
        ?>
" /><?php 
    }
    ?>
				</table>
				<?php 
    submit_button();
    ?>
			</form>
		</div><!-- #tab_container-->
	</div><!-- .wrap -->
	<?php 
    echo ob_get_clean();
}
/**
 * Options Page
 *
 * Renders the options page contents.
 *
 * @since 1.0
 * @return void
 */
function edd_options_page()
{
    $settings_tabs = edd_get_settings_tabs();
    $settings_tabs = empty($settings_tabs) ? array() : $settings_tabs;
    $active_tab = isset($_GET['tab']) && array_key_exists($_GET['tab'], $settings_tabs) ? $_GET['tab'] : 'general';
    $sections = edd_get_settings_tab_sections($active_tab);
    $key = 'main';
    if (is_array($sections)) {
        $key = key($sections);
    }
    $registered_sections = edd_get_settings_tab_sections($active_tab);
    $section = isset($_GET['section']) && !empty($registered_sections) && array_key_exists($_GET['section'], $registered_sections) ? $_GET['section'] : $key;
    ob_start();
    ?>
	<div class="wrap">
		<h1 class="nav-tab-wrapper">
			<?php 
    foreach (edd_get_settings_tabs() as $tab_id => $tab_name) {
        $tab_url = add_query_arg(array('settings-updated' => false, 'tab' => $tab_id));
        // Remove the section from the tabs so we always end up at the main section
        $tab_url = remove_query_arg('section', $tab_url);
        $active = $active_tab == $tab_id ? ' nav-tab-active' : '';
        echo '<a href="' . esc_url($tab_url) . '" title="' . esc_attr($tab_name) . '" class="nav-tab' . $active . '">';
        echo esc_html($tab_name);
        echo '</a>';
    }
    ?>
		</h1>
		<?php 
    $number_of_sections = count($sections);
    $number = 0;
    if ($number_of_sections > 1) {
        echo '<div><ul class="subsubsub">';
        foreach ($sections as $section_id => $section_name) {
            echo '<li>';
            $number++;
            $tab_url = add_query_arg(array('settings-updated' => false, 'tab' => $active_tab, 'section' => $section_id));
            $class = '';
            if ($section == $section_id) {
                $class = 'current';
            }
            echo '<a class="' . $class . '" href="' . esc_url($tab_url) . '">' . $section_name . '</a>';
            if ($number != $number_of_sections) {
                echo ' | ';
            }
            echo '</li>';
        }
        echo '</ul></div>';
    }
    ?>
		<div id="tab_container">
			<form method="post" action="options.php">
				<table class="form-table">
				<?php 
    settings_fields('edd_settings');
    if ('main' === $section) {
        do_action('edd_settings_tab_top', $active_tab);
    }
    do_action('edd_settings_tab_top_' . $active_tab . '_' . $section);
    do_settings_sections('edd_settings_' . $active_tab . '_' . $section);
    do_action('edd_settings_tab_bottom_' . $active_tab . '_' . $section);
    // For backwards compatibility
    if ('main' === $section) {
        do_action('edd_settings_tab_bottom', $active_tab);
    }
    ?>
				</table>
				<?php 
    submit_button();
    ?>
			</form>
		</div><!-- #tab_container-->
	</div><!-- .wrap -->
	<?php 
    echo ob_get_clean();
}