Function Reference: geodir_before_update_options

Summary

Fires before updating geodirectory admin settings.

Global Values

$sitepress
(object) (required) Sitepress WPML object.

Default: None

Package

GeoDirectory

Parameters

$current_tab
(string) (required) Current tab in geodirectory settings.

Default: None
$geodir_settings
(array) (required) Array of geodirectory settings.

Default: None

Change Log

Since: 1.4.2

Source File

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

Used by

geodirectory/geodirectory-admin/admin_functions.php: geodir_handle_option_form_submit() [Line: 388]

Source Code

function geodir_before_update_options($current_tab, $geodir_settings) {
	$active_tab = isset($_REQUEST['active_tab']) ? trim($_REQUEST['active_tab']) : '';
		
	// Permalink settings
	if ($current_tab == 'permalink_settings') {
		$listing_prefix = isset($_POST['geodir_listing_prefix']) ? trim($_POST['geodir_listing_prefix']) : '';
		$location_prefix = isset($_POST['geodir_location_prefix']) ? trim($_POST['geodir_location_prefix']) : '';
		
		// Don't allow same slug url for listing and location
		if (geodir_strtolower($listing_prefix) == geodir_strtolower($location_prefix)) {
			$redirect_url = admin_url('admin.php?page=geodirectory&tab=' . $current_tab . '&active_tab=' . $active_tab . '&msg=fail&gderr=21');
        	wp_redirect($redirect_url);
			exit;
		}
		
		// Don't allow to update page settings on different language.
		if (geodir_is_wpml()) {
			global $sitepress;
			$current_language = $sitepress->get_current_language();
			$default_language = $sitepress->get_default_language();
			
			if ($current_language != 'all' && $current_language != $default_language) {
				$redirect_url = admin_url('admin.php?page=geodirectory&tab=' . $current_tab . '&active_tab=' . $active_tab);
				wp_redirect($redirect_url);
				exit;
			}
		}
	}
}