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