Updates the multiple given options. Updates jetpack_options and/or jetpack_$name as appropriate.
public static update_options ( array $array ) | ||
$array | array | array( option name => option value, ... ) |
/** * @static * @return bool|WP_Error */ function register() { Jetpack::update_option('register', wp_generate_password(32, false) . ':' . wp_generate_password(32, false) . ':' . (time() + 600)); @(list($secret_1, $secret_2, $secret_eol) = explode(':', Jetpack::get_option('register'))); if (empty($secret_1) || empty($secret_2) || empty($secret_eol) || $secret_eol < time()) { return new Jetpack_Error('missing_secrets'); } $timeout = (int) ini_get('max_execution_time'); if (!$timeout) { $timeout = 30; } $timeout = intval($timeout / 2); $gmt_offset = get_option('gmt_offset'); if (!$gmt_offset) { $gmt_offset = 0; } $stats_options = get_option('stats_options'); $stats_id = isset($stats_options['blog_id']) ? $stats_options['blog_id'] : null; $args = array('method' => 'POST', 'body' => array('siteurl' => site_url(), 'home' => home_url(), 'gmt_offset' => $gmt_offset, 'timezone_string' => (string) get_option('timezone_string'), 'site_name' => (string) get_option('blogname'), 'secret_1' => $secret_1, 'secret_2' => $secret_2, 'site_lang' => get_locale(), 'timeout' => $timeout, 'stats_id' => $stats_id), 'headers' => array('Accept' => 'application/json'), 'timeout' => $timeout); $response = Jetpack_Client::_wp_remote_request(Jetpack::fix_url_for_bad_hosts(Jetpack::api_url('register'), $args), $args, true); if (is_wp_error($response)) { return new Jetpack_Error('register_http_request_failed', $response->get_error_message()); } $code = wp_remote_retrieve_response_code($response); $entity = wp_remote_retrieve_body($response); if ($entity) { $json = json_decode($entity); } else { $json = false; } $code_type = intval($code / 100); if (5 == $code_type) { return new Jetpack_error('wpcom_5??', sprintf(__('Error Details: %s', 'jetpack'), $code), $code); } elseif (408 == $code) { return new Jetpack_error('wpcom_408', sprintf(__('Error Details: %s', 'jetpack'), $code), $code); } elseif (!empty($json->error)) { $error_description = isset($json->error_description) ? sprintf(__('Error Details: %s', 'jetpack'), (string) $json->error_description) : ''; return new Jetpack_Error((string) $json->error, $error_description, $code); } elseif (200 != $code) { return new Jetpack_error('wpcom_bad_response', sprintf(__('Error Details: %s', 'jetpack'), $code), $code); } if (empty($json->jetpack_id) || !is_scalar($json->jetpack_id) || preg_match('/[^0-9]/', $json->jetpack_id)) { return new Jetpack_Error('jetpack_id', '', $code); } if (empty($json->jetpack_secret) || !is_string($json->jetpack_secret)) { return new Jetpack_Error('jetpack_secret', '', $code); } Jetpack::update_options(array('id' => (int) $json->jetpack_id, 'blog_token' => (string) $json->jetpack_secret)); return true; }