PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.13.1
GiveWP – Donation Plugin and Fundraising Platform v4.13.1
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Tracking / TrackClient.php
give / src / Tracking Last commit date
Contracts 4 years ago Enum 1 year ago Events 1 year ago Helpers 2 years ago Repositories 4 years ago TrackingData 1 year ago AccessToken.php 4 years ago AdminActionHandler.php 4 years ago AdminSettings.php 4 years ago TrackClient.php 4 years ago TrackJob.php 4 years ago TrackJobScheduler.php 4 years ago TrackRegisterer.php 4 years ago TrackingServiceProvider.php 1 year ago UsageTrackingOnBoarding.php 4 years ago
TrackClient.php
88 lines
1 <?php
2
3 namespace Give\Tracking;
4
5 use Give\Tracking\Contracts\TrackData;
6 use Give\Tracking\Enum\EventType;
7 use Give\Tracking\Repositories\TelemetryAccessDetails;
8 use WP_Error;
9
10 /**
11 * Class TrackClient
12 *
13 * This class has responsibility to send tracking information
14 *
15 * @package Give\Tracking
16 *
17 * @since 2.10.0
18 */
19 class TrackClient
20 {
21 const SERVER_URL = 'https://telemetry.givewp.com/api/v1/track-plugin-usage';
22
23 /**
24 * @var TelemetryAccessDetails
25 */
26 private $telemetryAccessDetails;
27
28 /**
29 * TrackClient constructor.
30 *
31 * @param TelemetryAccessDetails $telemetryAccessDetails
32 */
33 public function __construct(TelemetryAccessDetails $telemetryAccessDetails)
34 {
35 $this->telemetryAccessDetails = $telemetryAccessDetails;
36 }
37
38 /**
39 * Send a track event.
40 *
41 * @since 2.10.0
42 *
43 * @param EventType $eventType
44 * @param TrackData $trackData
45 * @param array $requestArgs
46 *
47 * @return array|WP_Error
48 */
49 public function post(EventType $eventType, TrackData $trackData, $requestArgs = [])
50 {
51 $id = $eventType->getValue();
52 $data = $trackData->get();
53
54 if ( ! $id || ! $data) {
55 return new WP_Error('invalid-telemetry-request', 'Pass valid track id and tracked data to TrackClient');
56 }
57
58 $default_request_args = [
59 'headers' => [
60 'content-type:' => 'application/json',
61 'Authorization' => 'Bearer ' . $this->telemetryAccessDetails->getAccessTokenOptionValue(),
62 ],
63 'timeout' => 8,
64 'httpversion' => '1.1',
65 'blocking' => false,
66 'user-agent' => 'GIVE/' . GIVE_VERSION . ' ' . get_bloginfo('url'),
67 'body' => wp_json_encode($data),
68 'data_format' => 'body',
69 ];
70
71 return wp_remote_post($this->getApiUrl($id), wp_parse_args($requestArgs, $default_request_args));
72 }
73
74 /**
75 * Get api url.
76 *
77 * @since 2.10.0
78 *
79 * @param string $trackId
80 *
81 * @return string
82 */
83 public function getApiUrl($trackId)
84 {
85 return self::SERVER_URL . '/' . $trackId;
86 }
87 }
88