function sanitize($newvalue, $option) { if ($option != $this->settings_field || empty($_POST)) { return $newvalue; } $data = stripslashes_deep($_POST); $seo_tool_settings_key = isset($newvalue['seo-tool']) ? 'scribe-seo-tool-settings-' . sanitize_title_with_dashes($newvalue['seo-tool']) : ''; $seo_tool_settings = isset($data[$seo_tool_settings_key]) ? maybe_unserialize($data[$seo_tool_settings_key]) : array(); $newvalue['seo-tool-settings'] = $seo_tool_settings; $scribe_api_key_status = Scribe_SEO::is_managed(); if (!$scribe_api_key_status) { $scribe_api_key_status = !empty($newvalue['api-key']) ? Scribe_SEO::verify_scribe_api_key($newvalue['api-key']) : false; } if (isset($newvalue['your-url']) && $this->get_field_value('your-url') != $newvalue['your-url']) { Scribe_SEO::clear_keyword_research_cache(); } if (!$scribe_api_key_status) { add_settings_error('', 'scribe-api-key-invalid', __('Your API key may not be valid. Please verify you have entered the correct key.', 'scribeseo'), 'error'); } elseif (!empty($newvalue['seo-tool']) && empty($newvalue['your-url'])) { add_settings_error('', 'scribe-url-invalid', __('Scribe requires Your URL to function properly.', 'scribeseo'), 'error'); } return $newvalue; }