PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 4.1.0
GiveWP – Donation Plugin and Fundraising Platform v4.1.0
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 / Repositories / TrackEvents.php
TrackEvents.php
132 lines 3.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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