PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 2.13.1
GiveWP – Donation Plugin and Fundraising Platform v2.13.1
4.16.8 4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 4.16.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 All 253 releases
give / src / Tracking / TrackRegisterer.php
TrackRegisterer.php
79 lines 1.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace Give\Tracking;
3
4 use Give\Tracking\Enum\EventType;
5 use Give\Tracking\Repositories\TrackEvents;
6
7 /**
8 * Class TrackRegisterer
9 *
10 * This class uses to recode tracks and send them to sever on "shutdown" action hook.
11 *
12 * @package Give\Tracking
13 * @since 2.10.0
14 */
15 class TrackRegisterer {
16 /**
17 * Collection of track events.
18 *
19 * @sicne 2.10.0
20 * @var array
21 */
22 private $newTracks = [];
23
24 /**
25 * Recoded tracks.
26 * @var array
27 */
28 private $recordedTracks;
29
30
31 /**
32 * Track constructor.
33 *
34 * @param TrackEvents $trackEvents
35 */
36 public function __construct( TrackEvents $trackEvents ) {
37 $this->recordedTracks = $trackEvents->getTrackList();
38 }
39
40 /**
41 * Register track.
42 *
43 * @param EventType $eventType
44 * @param string $trackData
45 *
46 * @since 2.10.0
47 */
48 public function register( $eventType, $trackData ) {
49 $id = $eventType->getValue();
50 if ( array_key_exists( $id, $this->recordedTracks ) || ! $trackData ) {
51 return;
52 }
53
54 $this->newTracks[ $id ] = $trackData;
55 }
56
57 /**
58 * Get new tracks.
59 *
60 * @since 2.10.0
61 *
62 * @return array
63 */
64 public function getTrackList() {
65 return array_merge( $this->recordedTracks, $this->newTracks );
66 }
67
68 /**
69 * Return whether or not new tracks registered.
70 *
71 * @since 2.10.0
72 *
73 * @return bool
74 */
75 public function hasNewTracks() {
76 return (bool) $this->newTracks;
77 }
78 }
79