/** * 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']; if (isset($_POST['po_option']['geo_lookup'])) { $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); 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; } }