/** * Called every time the settings page is loaded. Saves changes. * * @since 4.6.0 */ public static function handle_settings_update() { lib2()->array->equip_post('action', 'po_option'); if ('updatesettings' == $_POST['action']) { check_admin_referer('update-popup-settings'); $old_settings = IncPopupDatabase::get_settings(); $settings = array(); $settings['loadingmethod'] = $_POST['po_option']['loadingmethod']; $settings['geo_lookup'] = $_POST['po_option']['geo_lookup']; $settings['geo_db'] = 'geo_db' === $settings['geo_lookup']; $rules = $_POST['po_option']['rules']; if (!is_array($rules)) { $rules = array(); } $settings['rules'] = array_keys($rules); IncPopupDatabase::set_settings($settings); // When the Lookup-source was changed we want to clear the cache. if ($old_settings['geo_lookup'] != $settings['geo_lookup']) { IncPopupDatabase::clear_ip_cache(); lib2()->ui->admin_message(__('Country Lookup changed: The lookup-cache was cleared.', PO_LANG)); } lib2()->ui->admin_message(__('Your settings have been updated.', PO_LANG)); $redirect_url = esc_url_raw(remove_query_arg(array('message', 'count'), wp_get_referer())); wp_safe_redirect($redirect_url); die; } }