PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.11.3
GiveWP – Donation Plugin and Fundraising Platform v2.11.3
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 / TrackJob.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 5 years ago
TrackJob.php
93 lines
1 <?php
2
3 namespace Give\Tracking;
4
5 use Give\Tracking\Contracts\TrackData;
6 use Give\Tracking\Contracts\TrackEvent;
7 use Give\Tracking\Enum\EventType;
8 use Give\Tracking\Events\EditedDonationFormsTracking;
9 use Give\Tracking\Helpers\Track as TrackHelper;
10 use Give\Tracking\Repositories\TrackEvents;
11 use Give\Tracking\TrackingData\EditedDonationFormsData;
12
13 /**
14 * Class TrackJob
15 *
16 * @package Give\Tracking
17 * @since 2.10.0
18 */
19 class TrackJob {
20 /**
21 * @var TrackClient
22 */
23 private $trackClient;
24
25 /**
26 * @var TrackEvents
27 */
28 private $trackEvents;
29
30 /**
31 * TrackJob constructor.
32 *
33 * @param TrackClient $trackClient
34 * @param TrackEvents $trackEvents
35 */
36 public function __construct( TrackClient $trackClient, TrackEvents $trackEvents ) {
37 $this->trackClient = $trackClient;
38 $this->trackEvents = $trackEvents;
39 }
40
41 /**
42 * Send tracks.
43 *
44 * @since 2.10.0
45 */
46 public function send() {
47 $recordedTracks = $this->trackEvents->getTrackList();
48
49 if ( ! $recordedTracks ) {
50 return;
51 }
52
53 foreach ( $recordedTracks as $trackId => $className ) {
54 /* @var TrackData $class */
55 $class = give( $className );
56 $eventType = new EventType( $trackId );
57
58 if ( $class instanceof TrackData ) {
59 $this->trackClient->post( $eventType, $class );
60 }
61 }
62
63 $this->trackEvents->saveRequestTime();
64 $this->trackEvents->removeTrackList();
65
66 if ( in_array( EditedDonationFormsData::class, $recordedTracks, true ) ) {
67 $this->trackEvents->removeRecentlyEditedDonationFormList();
68 }
69 }
70
71 /**
72 * Send tracked information immediately.
73 *
74 * @since 2.10.2
75 * @param array $trackedEvents
76 */
77 public function sendNow( $trackedEvents ) {
78 /* @var TrackEvents $trackEvents */
79 $trackEvents = give( TrackEvents::class );
80
81 foreach ( $trackedEvents as $trackEvent ) {
82 give( $trackEvent )->record();
83 }
84
85 $trackEvents->saveTrackList();
86 $this->send();
87
88 // Do not setup cron job.
89 $class = TrackJobScheduler::class;
90 add_filter( "give_disable_hook-shutdown:{$class}@schedule", '__return_true' );
91 }
92 }
93