PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.13.4
GiveWP – Donation Plugin and Fundraising Platform v2.13.4
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 5 years ago Enum 5 years ago Events 5 years ago Helpers 5 years ago Repositories 5 years ago TrackingData 4 years ago AccessToken.php 5 years ago AdminActionHandler.php 5 years ago AdminSettings.php 5 years ago TrackClient.php 5 years ago TrackJob.php 5 years ago TrackJobScheduler.php 5 years ago TrackRegisterer.php 5 years ago TrackingServiceProvider.php 5 years ago UsageTrackingOnBoarding.php 4 years ago
TrackClient.php
83 lines
1 <?php
2 namespace Give\Tracking;
3
4 use Give\Tracking\Contracts\TrackData;
5 use Give\Tracking\Enum\EventType;
6 use Give\Tracking\Repositories\TelemetryAccessDetails;
7 use WP_Error;
8
9 /**
10 * Class TrackClient
11 *
12 * This class has responsibility to send tracking information
13 *
14 * @since 2.10.0
15 * @package Give\Tracking
16 *
17 */
18 class TrackClient {
19 const SERVER_URL = 'https://telemetry.givewp.com/api/v1/track-plugin-usage';
20
21 /**
22 * @var TelemetryAccessDetails
23 */
24 private $telemetryAccessDetails;
25
26 /**
27 * TrackClient constructor.
28 *
29 * @param TelemetryAccessDetails $telemetryAccessDetails
30 */
31 public function __construct( TelemetryAccessDetails $telemetryAccessDetails ) {
32 $this->telemetryAccessDetails = $telemetryAccessDetails;
33 }
34
35 /**
36 * Send a track event.
37 *
38 * @since 2.10.0
39 *
40 * @param EventType $eventType
41 * @param TrackData $trackData
42 * @param array $requestArgs
43 *
44 * @return array|WP_Error
45 */
46 public function post( EventType $eventType, TrackData $trackData, $requestArgs = [] ) {
47 $id = $eventType->getValue();
48 $data = $trackData->get();
49
50 if ( ! $id || ! $data ) {
51 return new WP_Error( 'invalid-telemetry-request', 'Pass valid track id and tracked data to TrackClient' );
52 }
53
54 $default_request_args = [
55 'headers' => [
56 'content-type:' => 'application/json',
57 'Authorization' => 'Bearer ' . $this->telemetryAccessDetails->getAccessTokenOptionValue(),
58 ],
59 'timeout' => 8,
60 'httpversion' => '1.1',
61 'blocking' => false,
62 'user-agent' => 'GIVE/' . GIVE_VERSION . ' ' . get_bloginfo( 'url' ),
63 'body' => wp_json_encode( $data ),
64 'data_format' => 'body',
65 ];
66
67 return wp_remote_post( $this->getApiUrl( $id ), wp_parse_args( $requestArgs, $default_request_args ) );
68 }
69
70 /**
71 * Get api url.
72 *
73 * @since 2.10.0
74 *
75 * @param string $trackId
76 *
77 * @return string
78 */
79 public function getApiUrl( $trackId ) {
80 return self::SERVER_URL . '/' . $trackId;
81 }
82 }
83