PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.3.0
GiveWP – Donation Plugin and Fundraising Platform v3.3.0
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 / Repositories / TrackEvents.php
give / src / Tracking / Repositories Last commit date
Settings.php 4 years ago TelemetryAccessDetails.php 4 years ago TrackEvents.php 4 years ago
TrackEvents.php
132 lines
1 <?php
2
3 namespace Give\Tracking\Repositories;
4
5 use Give\Tracking\TrackingData\WebsiteInfoData;
6 use Give\Tracking\TrackRegisterer;
7
8 /**
9 * Class EventRecord
10 * @package Give\Tracking\Repositories
11 *
12 * @since 2.10.0
13 */
14 class TrackEvents
15 {
16 const TELEMETRY_REQUEST_TIME_OPTION_KEY = 'give_telemetry_usage_tracking_last_request';
17 const TRACKING_EVENTS_RECORD_OPTION_KEY = 'give_telemetry_records';
18 const RECENTLY_EDITED_DONATION_FORM_OPTION_KEY = 'give_telemetry_recently_edited_donation_form';
19
20 /**
21 * Remove tracks.
22 *
23 * @since 2.10.0
24 */
25 public function removeTrackList()
26 {
27 delete_option(self::TRACKING_EVENTS_RECORD_OPTION_KEY);
28 }
29
30 /**
31 * Remove list of recently edited donation forms.
32 *
33 * @since 2.10.2
34 */
35 public function removeRecentlyEditedDonationFormList()
36 {
37 delete_option(self::RECENTLY_EDITED_DONATION_FORM_OPTION_KEY);
38 }
39
40 /**
41 * Save tracks.
42 *
43 * @since 2.10.0
44 */
45 public function saveTrackList()
46 {
47 /* @var TrackRegisterer $trackRegisterer */
48 $trackRegisterer = give(TrackRegisterer::class);
49 update_option(self::TRACKING_EVENTS_RECORD_OPTION_KEY, $trackRegisterer->getTrackList(), false);
50 }
51
52 /**
53 * Save recently edited donation form.
54 *
55 * @since 2.10.2
56 */
57 public function saveRecentlyEditedDonationForm($formId)
58 {
59 $formIds = $this->getRecentlyEditedDonationFormsList();
60 $formIds[] = $formId;
61
62 $formIds = array_unique($formIds);
63 update_option(self::RECENTLY_EDITED_DONATION_FORM_OPTION_KEY, $formIds, false);
64 }
65
66 /**
67 * Get recently edited donation form list.
68 *
69 * @since 2.10.2
70 */
71 public function getRecentlyEditedDonationFormsList()
72 {
73 return get_option(self::RECENTLY_EDITED_DONATION_FORM_OPTION_KEY, []);
74 }
75
76 /**
77 * Get tracks list.
78 *
79 * @since 2.10.0
80 */
81 public function getTrackList()
82 {
83 return get_option(self::TRACKING_EVENTS_RECORD_OPTION_KEY, []);
84 }
85
86 /**
87 * Save request time.
88 *
89 * @since 2.10.0
90 */
91 public function saveRequestTime()
92 {
93 update_option(self::TELEMETRY_REQUEST_TIME_OPTION_KEY, strtotime('- 1 hour', current_time('timestamp')), false);
94 }
95
96 /**
97 * Get request time.
98 *
99 * @since 2.10.0
100 *
101 * @return false|string
102 */
103 public function getRequestTime()
104 {
105 $today = strtotime('today', current_time('timestamp'));
106
107 return date('Y-m-d H:i:s', get_option(self::TELEMETRY_REQUEST_TIME_OPTION_KEY, $today));
108 }
109
110 /**
111 * Store website tracking event.
112 *
113 * @since 2.10.0
114 */
115 public function storeWebsiteTrackingEvent()
116 {
117 /* @var WebsiteInfoData $dataClass */
118 $dataClass = give(WebsiteInfoData::class);
119 $optionName = 'give_telemetry_website_data_checksum';
120 $previousChecksum = get_option($optionName, '');
121 $checksum = substr(md5(serialize($dataClass->get())), 0, 32);
122
123 if ($previousChecksum === $checksum) {
124 return false;
125 }
126
127 update_option($optionName, $checksum, false);
128
129 return true;
130 }
131 }
132