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