static function send_data($data) { Jetpack::load_xml_rpc_client(); // add an extra parameter to the URL so we can tell it's a sync action $url = add_query_arg('sync', '1', Jetpack::xmlrpc_api_url()); $rpc = new Jetpack_IXR_Client(array('url' => $url, 'user_id' => get_current_user_id(), 'timeout' => 30)); $result = $rpc->query('jetpack.syncActions', $data); if (!$result) { return $rpc->get_jetpack_error(); } return $rpc->getResponse(); }
static function send_data($data, $codec_name, $sent_timestamp, $queue_id) { Jetpack::load_xml_rpc_client(); $url = add_query_arg(array('sync' => '1', 'codec' => $codec_name, 'timestamp' => $sent_timestamp, 'queue' => $queue_id), Jetpack::xmlrpc_api_url()); $rpc = new Jetpack_IXR_Client(array('url' => $url, 'user_id' => JETPACK_MASTER_USER, 'timeout' => 30)); $result = $rpc->query('jetpack.syncActions', $data); if (!$result) { return $rpc->get_jetpack_error(); } return $rpc->getResponse(); }
static function send_data($data, $codec_name, $sent_timestamp, $queue_id) { Jetpack::load_xml_rpc_client(); $query_args = array('sync' => '1', 'codec' => $codec_name, 'timestamp' => $sent_timestamp, 'queue' => $queue_id); if (Jetpack::sync_idc_optin()) { $query_args['home'] = get_home_url(); // Send home url option to check for Identity Crisis server-side $query_args['siteurl'] = get_site_url(); // Send home url option to check for Identity Crisis server-side } $url = add_query_arg($query_args, Jetpack::xmlrpc_api_url()); $rpc = new Jetpack_IXR_Client(array('url' => $url, 'user_id' => JETPACK_MASTER_USER, 'timeout' => 30)); $result = $rpc->query('jetpack.syncActions', $data); if (!$result) { return $rpc->get_jetpack_error(); } return $rpc->getResponse(); }
static function send_data($data, $codec_name, $sent_timestamp, $queue_id) { Jetpack::load_xml_rpc_client(); $query_args = array('sync' => '1', 'codec' => $codec_name, 'timestamp' => $sent_timestamp, 'queue' => $queue_id, 'home' => get_home_url(), 'siteurl' => get_site_url()); // Has the site opted in to IDC mitigation? if (Jetpack::sync_idc_optin()) { $query_args['idc'] = true; } if (Jetpack_Options::get_option('migrate_for_idc', false)) { $query_args['migrate_for_idc'] = true; } $query_args['timeout'] = Jetpack_Sync_Settings::is_doing_cron() ? 30 : 15; $url = add_query_arg($query_args, Jetpack::xmlrpc_api_url()); $rpc = new Jetpack_IXR_Client(array('url' => $url, 'user_id' => JETPACK_MASTER_USER, 'timeout' => $query_args['timeout'])); $result = $rpc->query('jetpack.syncActions', $data); if (!$result) { return $rpc->get_jetpack_error(); } $response = $rpc->getResponse(); // Check if WordPress.com IDC mitigation blocked the sync request if (is_array($response) && isset($response['error_code'])) { $error_code = $response['error_code']; $allowed_idc_error_codes = array('jetpack_url_mismatch', 'jetpack_home_url_mismatch', 'jetpack_site_url_mismatch'); if (in_array($error_code, $allowed_idc_error_codes)) { Jetpack_Options::update_option('sync_error_idc', Jetpack::get_sync_error_idc_option($response)); } return new WP_Error('sync_error_idc', esc_html__('Sync has been blocked from WordPress.com because it would cause an identity crisis', 'jetpack')); } return $response; }
static function send_data($data, $codec_name, $sent_timestamp, $queue_id) { Jetpack::load_xml_rpc_client(); $query_args = array('sync' => '1', 'codec' => $codec_name, 'timestamp' => $sent_timestamp, 'queue' => $queue_id, 'home' => get_home_url(), 'siteurl' => get_site_url()); // Has the site opted in to IDC mitigation? if (Jetpack::sync_idc_optin()) { $query_args['idc'] = true; } $url = add_query_arg($query_args, Jetpack::xmlrpc_api_url()); $rpc = new Jetpack_IXR_Client(array('url' => $url, 'user_id' => JETPACK_MASTER_USER, 'timeout' => 30)); $result = $rpc->query('jetpack.syncActions', $data); if (!$result) { $error = $rpc->get_jetpack_error(); if ('jetpack_url_mismatch' === $error->get_error_code()) { Jetpack_Options::update_option('sync_error_idc', Jetpack::get_sync_error_idc_option()); } return $error; } return $rpc->getResponse(); }