Function Reference: geodir_handle_option_form_submit

Summary

Handles data posted from GeoDirectory settings form.

Global Values

$geodir_settings
(array) (required) Geodirectory settings array.

Default: None

Package

GeoDirectory

Parameters

$current_tab
(string) (required) The current settings tab name.

Default: None

Change Log

Since: 1.0.0

Actions

‘geodir_before_update_options’ [Line: 407]

‘geodir_update_options’ [Line: 419]

‘geodir_update_options_.$current_tab’ [Line: 430]

Source File

geodir_handle_option_form_submit() is located in geodirectory-admin/admin_functions.php [Line: 383]

Source Code

function geodir_handle_option_form_submit($current_tab)
{
    global $geodir_settings;
    if (file_exists(dirname(__FILE__) . '/option-pages/' . $current_tab . '_array.php')) {
        /**
         * Contains settings array for current tab.
         *
         * @since 1.0.0
         * @package GeoDirectory
         */
        include_once('option-pages/' . $current_tab . '_array.php');
    }
    if (isset($_POST) && $_POST && isset($_REQUEST['page']) && $_REQUEST['page'] == 'geodirectory') :
        if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'geodir-settings')) die(__('Action failed. Please refresh the page and retry.', 'geodirectory'));
        if (!wp_verify_nonce($_REQUEST['_wpnonce-' . $current_tab], 'geodir-settings-' . $current_tab)) die(__('Action failed. Please refresh the page and retry.', 'geodirectory'));
		
		/**
		 * Fires before updating geodirectory admin settings.
		 *
		 * @since 1.4.2
		 *
		 * @param string $current_tab Current tab in geodirectory settings.
		 * @param array  $geodir_settings Array of geodirectory settings.
		 */
		do_action('geodir_before_update_options', $current_tab, $geodir_settings);		
		
        if (!empty($geodir_settings[$current_tab]))
            geodir_update_options($geodir_settings[$current_tab]);

        /**
         * Called after GeoDirectory options settings are updated.
         *
         * @since 1.0.0
         * @param array $geodir_settings The array of GeoDirectory settings.
         * @see 'geodir_before_update_options'
         */
        do_action('geodir_update_options', $geodir_settings);

        /**
         * Called after GeoDirectory options settings are updated.
         *
         * Provides tab specific settings.
         *
         * @since 1.0.0
         * @param string $current_tab The current settings tab name.
         * @param array $geodir_settings[$current_tab] The array of settings for the current settings tab.
         */
        do_action('geodir_update_options_' . $current_tab, $geodir_settings[$current_tab]);

        flush_rewrite_rules(false);

        $current_tab = isset($_REQUEST['tab']) ? $_REQUEST['tab'] : '';

        $redirect_url = admin_url('admin.php?page=geodirectory&tab=' . $current_tab . '&active_tab=' . $_REQUEST['active_tab'] . '&msg=success');

        wp_redirect($redirect_url);
        exit();
    endif;


}