PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.2.1
GiveWP – Donation Plugin and Fundraising Platform v3.2.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 / TrackingServiceProvider.php
give / src / Tracking Last commit date
Contracts 4 years ago Enum 4 years ago Events 2 years ago Helpers 4 years ago Repositories 4 years ago TrackingData 2 years ago AccessToken.php 4 years ago AdminActionHandler.php 4 years ago AdminSettings.php 4 years ago TrackClient.php 4 years ago TrackJob.php 4 years ago TrackJobScheduler.php 4 years ago TrackRegisterer.php 4 years ago TrackingServiceProvider.php 2 years ago UsageTrackingOnBoarding.php 4 years ago
TrackingServiceProvider.php
119 lines
1 <?php
2
3 namespace Give\Tracking;
4
5 use Give\Helpers\Hooks;
6 use Give\ServiceProviders\ServiceProvider;
7 use Give\Tracking\Events\DonationFormsTracking;
8 use Give\Tracking\Events\DonationMetricsTracking;
9 use Give\Tracking\Events\EditedDonationFormsTracking;
10 use Give\Tracking\Events\GivePluginSettingsTracking;
11 use Give\Tracking\Events\PluginsTracking;
12 use Give\Tracking\Events\ThemeTracking;
13 use Give\Tracking\Events\WebsiteTracking;
14 use Give\Tracking\Helpers\Track;
15
16 /**
17 * Class TrackingServiceProvider
18 * @package Give\Tracking
19 *
20 * @since 2.10.0
21 */
22 class TrackingServiceProvider implements ServiceProvider
23 {
24 /**
25 * @inheritdoc
26 */
27 public function register()
28 {
29 give()->singleton(TrackRegisterer::class);
30 }
31
32 /**
33 * @inheritdoc
34 *
35 * @since 3.0.0 Enable tracking if request is made by form builder
36 */
37 public function boot()
38 {
39 $isTrackingEnabled = Track::isTrackingEnabled();
40
41 if ($isTrackingEnabled) {
42 Hooks::addAction(TrackJobScheduler::CRON_JOB_HOOK_NAME, TrackJob::class, 'send');
43 }
44
45 // Enable telemetry for Visual Form Builder
46 add_action('rest_api_init', function () use ($isTrackingEnabled) {
47 $restRoute = $GLOBALS['wp']->query_vars['rest_route'] ?? '';
48 if (empty($restRoute)) {
49 return;
50 }
51
52 $isV3FormRoute = strpos($restRoute, 'givewp/v3/form') !== false;
53 if ($isTrackingEnabled && $isV3FormRoute) {
54 $this->enableTracking();
55 }
56 });
57
58 if (is_admin()) {
59 if ($isTrackingEnabled) {
60 $this->enableTracking();
61 }
62
63 if (Track::checkEnvironment()) {
64 Hooks::addFilter('give_get_settings_advanced', AdminSettings::class, 'addSettings');
65 Hooks::addAction('give_opt_in_into_tracking', AdminActionHandler::class, 'optInToUsageTracking');
66 Hooks::addAction(
67 'give_hide_opt_in_notice_shortly',
68 AdminActionHandler::class,
69 'optOutFromUsageTracking'
70 );
71 Hooks::addAction(
72 'give_hide_opt_in_notice_permanently',
73 AdminActionHandler::class,
74 'optOutFromUsageTracking'
75 );
76 Hooks::addAction(
77 'update_option_give_settings',
78 AdminActionHandler::class,
79 'optInToUsageTrackingAdminGrantManually',
80 10,
81 2
82 );
83 Hooks::addAction('give_setup_page_before_sections', UsageTrackingOnBoarding::class, 'addNotice', 0);
84 Hooks::addAction('admin_notices', UsageTrackingOnBoarding::class, 'addNotice');
85 }
86 }
87 }
88
89 /**
90 * @since 3.0.0
91 */
92 private function enableTracking()
93 {
94 $this->registerTrackEvents();
95 Hooks::addAction('shutdown', TrackJobScheduler::class, 'schedule', 999);
96 }
97
98 /**
99 * Register track events.
100 *
101 * 'give_send_tracking_data' action hook that will be triggered track routine cron job.
102 *
103 * @since 3.0.0 Add support for v3 forms
104 * @since 2.10.0
105 */
106 private function registerTrackEvents()
107 {
108 Hooks::addAction('givewp_form_builder_updated', EditedDonationFormsTracking::class, 'formBuilderUpdatedHookHandler');
109 Hooks::addAction('save_post_give_forms', EditedDonationFormsTracking::class, 'savePostHookHandler');
110 Hooks::addAction('save_post_give_payment', DonationFormsTracking::class, 'record');
111 Hooks::addAction('save_post_give_payment', DonationMetricsTracking::class, 'record');
112 Hooks::addAction('upgrader_process_complete', ThemeTracking::class, 'themeUpdateTrackingHandler', 10, 2);
113 Hooks::addAction('shutdown', WebsiteTracking::class, 'websiteUpdateTrackingHandler');
114 Hooks::addAction('update_option_give_settings', GivePluginSettingsTracking::class, 'record');
115 Hooks::addAction('update_option_active_plugins', PluginsTracking::class, 'record');
116 Hooks::addAction('switch_theme', ThemeTracking::class, 'record');
117 }
118 }
119