PluginProbe
Sendy / trunk
Sendy vtrunk
3.4.6 3.4.7 trunk 3.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.2 3.1.3 3.2.0 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 All 32 releases
sendy / lib / Transport.php

Transport.php in Sendy trunk, at lib/Transport.php

43 lines 1.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Sendy\WooCommerce;
4
5 use Sendy\Api\Exceptions\TransportException;
6 use Sendy\Api\Http\Request;
7 use Sendy\Api\Http\Response;
8 use Sendy\Api\Http\Transport\TransportInterface;
9
10 final class Transport implements TransportInterface
11 {
12 public function send(Request $request): Response
13 {
14 $args = [
15 'method' => $request->getMethod(),
16 'headers' => $request->getHeaders(),
17 'body' => $request->getBody(),
18 ];
19
20 if ($request->getMethod() === 'GET') {
21 unset($args['body']);
22 }
23
24 $response = wp_remote_request($request->getUrl(), $args);
25
26 if (is_wp_error($response)) {
27 // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped
28 throw new TransportException($response->get_error_message());
29 }
30
31 return new Response(
32 wp_remote_retrieve_response_code($response),
33 wp_remote_retrieve_headers($response)->getAll(),
34 wp_remote_retrieve_body($response),
35 );
36 }
37
38 public function getUserAgent(): string
39 {
40 return 'WP_Http/' . get_bloginfo('version');
41 }
42 }
43