PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 5.13.0
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v5.13.0
5.13.0 5.12.1 5.12.0 5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / classes / WpMatomo / Admin / GetStarted.php
matomo / classes / WpMatomo / Admin Last commit date
Marketplace 2 months ago PluginSuggestions 1 month ago TrackingSettings 1 month ago views 4 days ago AccessSettings.php 1 month ago AdBlockDetector.php 8 months ago Admin.php 2 months ago AdminSettings.php 1 month ago AdminSettingsInterface.php 6 years ago AdvancedSettings.php 1 month ago Chart.php 3 months ago CookieConsent.php 4 years ago Dashboard.php 1 month ago ExclusionSettings.php 1 month ago GeolocationSettings.php 1 month ago GetStarted.php 1 month ago ImportWpStatistics.php 1 month ago Info.php 1 month ago InvalidIpException.php 4 years ago Marketplace.php 1 month ago MarketplaceSetupWizard.php 1 month ago MarketplaceSetupWizardBody.php 1 month ago MatomoPage.php 4 months ago MatomoPageContent.php 4 months ago Menu.php 1 month ago PluginMeasurableSettings.php 1 month ago PrivacySettings.php 1 month ago SafeModeMenu.php 1 month ago Summary.php 1 month ago SystemReport.php 4 days ago TrackingSettings.php 1 month ago WhatsNewNotifications.php 4 months ago
GetStarted.php
128 lines
1 <?php
2 /**
3 * Matomo - free/libre analytics platform
4 *
5 * @link https://matomo.org
6 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
7 * @package matomo
8 */
9
10 namespace WpMatomo\Admin;
11
12 use WpMatomo\Settings;
13
14 if ( ! defined( 'ABSPATH' ) ) {
15 exit; // if accessed directly
16 }
17
18 class GetStarted implements MatomoPageContent {
19 const NONCE_NAME = 'matomo_enable_tracking';
20 const FORM_NAME = 'matomo';
21
22 /**
23 * @var Settings
24 */
25 private $settings;
26
27 /**
28 * @param Settings $settings
29 */
30 public function __construct( $settings ) {
31 $this->settings = $settings;
32 }
33
34 public static function register_hooks() {
35 add_action( 'matomo_before_add_menu', [ self::class, 'on_marketplace_plugin_activated' ] );
36 }
37
38 public static function on_marketplace_plugin_activated() {
39 $settings = new Settings();
40
41 $is_hidden = self::auto_hide_page_if_steps_completed( $settings );
42 if (
43 $is_hidden
44 && isset( $_REQUEST['page'] )
45 && Menu::SLUG_GET_STARTED === $_REQUEST['page']
46 ) {
47 wp_safe_redirect( admin_url( 'admin.php?page=' . Menu::SLUG_REPORT_SUMMARY ) );
48 exit;
49 }
50 }
51
52 public static function auto_hide_page_if_steps_completed( Settings $settings ) {
53 if ( self::should_auto_hide_get_started_page( $settings ) ) {
54 $settings->apply_changes(
55 [
56 Settings::SHOW_GET_STARTED_PAGE => 0,
57 ]
58 );
59
60 return true;
61 }
62
63 return false;
64 }
65 public function show() {
66 $was_updated = $this->update_if_submitted();
67 $settings = $this->settings;
68 $can_user_edit = $this->can_user_manage();
69 $show_this_page = $this->settings->get_global_option( Settings::SHOW_GET_STARTED_PAGE );
70 $matomo_is_marketplace_active = $this->is_marketplace_installed_and_active();
71
72 $matomo_marketplace_setup_wizard = new MarketplaceSetupWizard();
73 $matomo_marketplace_setup_wizard_body = $matomo_marketplace_setup_wizard->get_body( false );
74 $matomo_marketplace_setup_wizard_body->set_design_variant( MarketplaceSetupWizardBody::DESIGN_VARIANT_REDESIGN );
75
76 include __DIR__ . '/views/get_started.php';
77 }
78
79 private function update_if_submitted() {
80 if ( isset( $_POST )
81 && ! empty( $_POST[ self::FORM_NAME ] )
82 && is_admin()
83 && check_admin_referer( self::NONCE_NAME )
84 && $this->can_user_manage() ) {
85 if ( ! empty( $_POST[ self::FORM_NAME ][ Settings::SHOW_GET_STARTED_PAGE ] )
86 && 'no' === $_POST[ self::FORM_NAME ][ Settings::SHOW_GET_STARTED_PAGE ] ) {
87 $this->settings->apply_changes(
88 [
89 Settings::SHOW_GET_STARTED_PAGE => 0,
90 ]
91 );
92
93 return true;
94 }
95 if ( ! empty( $_POST[ self::FORM_NAME ]['track_mode'] )
96 && TrackingSettings::TRACK_MODE_DEFAULT === $_POST[ self::FORM_NAME ]['track_mode'] ) {
97 $this->settings->apply_tracking_related_changes( [ 'track_mode' => TrackingSettings::TRACK_MODE_DEFAULT ] );
98
99 self::auto_hide_page_if_steps_completed( $this->settings );
100
101 return true;
102 }
103 }
104
105 return false;
106 }
107
108 public static function should_auto_hide_get_started_page( Settings $settings ) {
109 return $settings->is_tracking_enabled()
110 && self::is_marketplace_installed_and_active();
111 }
112
113 public static function is_marketplace_installed_and_active() {
114 return MarketplaceSetupWizard::is_marketplace_installed()
115 && is_plugin_active( MarketplaceSetupWizard::MARKETPLACE_PLUGIN_FILE );
116 }
117
118 public function can_user_manage() {
119 $tracking_settings = new TrackingSettings( $this->settings );
120
121 return $tracking_settings->can_user_manage();
122 }
123
124 public function get_title() {
125 return __( 'Start getting a full picture of your visitors', 'matomo' );
126 }
127 }
128