PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 5.12.1
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v5.12.1
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 / Summary.php
matomo / classes / WpMatomo / Admin Last commit date
Marketplace 2 months ago PluginSuggestions 2 weeks ago TrackingSettings 2 weeks ago views 2 weeks ago AccessSettings.php 2 weeks ago AdBlockDetector.php 8 months ago Admin.php 2 months ago AdminSettings.php 2 weeks ago AdminSettingsInterface.php 6 years ago AdvancedSettings.php 2 weeks ago Chart.php 3 months ago CookieConsent.php 4 years ago Dashboard.php 2 weeks ago ExclusionSettings.php 2 weeks ago GeolocationSettings.php 2 weeks ago GetStarted.php 2 weeks ago ImportWpStatistics.php 2 weeks ago Info.php 2 weeks ago InvalidIpException.php 4 years ago Marketplace.php 2 weeks ago MarketplaceSetupWizard.php 2 weeks ago MarketplaceSetupWizardBody.php 2 weeks ago MatomoPage.php 4 months ago MatomoPageContent.php 4 months ago Menu.php 2 weeks ago PluginMeasurableSettings.php 2 weeks ago PrivacySettings.php 2 weeks ago SafeModeMenu.php 2 weeks ago Summary.php 2 weeks ago SystemReport.php 2 weeks ago TrackingSettings.php 2 weeks ago WhatsNewNotifications.php 4 months ago
Summary.php
134 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\Capabilities;
13 use WpMatomo\Report\Dates;
14 use WpMatomo\Report\Metadata;
15 use WpMatomo\Report\Renderer;
16 use WpMatomo\Settings;
17 use Piwik\Plugins\UsersManager\UserPreferences;
18
19 if ( ! defined( 'ABSPATH' ) ) {
20 exit; // if accessed directly
21 }
22
23 class Summary implements MatomoPageContent {
24 const NONCE_DASHBOARD = 'matomo_pin_dashboard';
25
26 /**
27 * @var Settings
28 */
29 private $settings;
30
31 /**
32 * @param Settings $settings
33 */
34 public function __construct( $settings ) {
35 $this->settings = $settings;
36 }
37
38 private function pin_if_submitted() {
39 if ( ! empty( $_GET['pin'] )
40 && ! empty( $_GET['report_uniqueid'] )
41 && ! empty( $_GET['report_date'] )
42 && is_admin()
43 && check_admin_referer( self::NONCE_DASHBOARD )
44 && is_user_logged_in()
45 && current_user_can( Capabilities::KEY_VIEW )
46 ) {
47 $unique_id = sanitize_text_field( wp_unslash( $_GET['report_uniqueid'] ) );
48 $date = sanitize_text_field( wp_unslash( $_GET['report_date'] ) );
49 $dashobard = new Dashboard();
50 if ( $dashobard->is_valid_widget( $unique_id, $date ) ) {
51 $dashobard->toggle_widget( $unique_id, $date );
52 return true;
53 }
54 }
55
56 return false;
57 }
58
59 public function show() {
60 do_action( 'matomo_load_chartjs' );
61
62 $matomo_pinned = $this->pin_if_submitted();
63
64 $settings = $this->settings;
65
66 $reports_to_show = $this->get_reports_to_show();
67 $filter_limit = apply_filters( 'matomo_report_summary_filter_limit', 10 );
68
69 $report_dates_obj = new Dates();
70 $report_dates = $report_dates_obj->get_supported_dates();
71 $report_date = $report_dates_obj->get_date_from_query();
72
73 list( $report_period_selected, $report_date_selected ) = $report_dates_obj->detect_period_and_date( $report_date );
74
75 $is_tracking = $this->settings->is_tracking_enabled();
76
77 $matomo_dashboard = new Dashboard();
78
79 $wp_version = get_bloginfo( 'version' );
80 $matomo_is_version_pre55 = empty( $wp_version ) || version_compare( $wp_version, '5.5.0' ) === - 1;
81
82 include __DIR__ . '/views/summary.php';
83 }
84
85 private function get_reports_to_show() {
86 $reports_to_show = [
87 Renderer::CUSTOM_UNIQUE_ID_VISITS_OVER_TIME,
88 'VisitsSummary_get',
89 'UserCountry_getCountry',
90 'Actions_get',
91 'DevicesDetection_getType',
92 'Goals_get',
93 'Resolution_getResolution',
94 'DevicesDetection_getOsFamilies',
95 'DevicesDetection_getBrowsers',
96 'VisitTime_getVisitInformationPerServerTime',
97 'Actions_getPageTitles',
98 'Actions_getEntryPageTitles',
99 'Actions_getExitPageTitles',
100 'Actions_getDownloads',
101 'Actions_getOutlinks',
102 'Referrers_getAll',
103 'Referrers_getSocials',
104 'Referrers_getCampaigns',
105 ];
106
107 if ( $this->settings->get_global_option( 'track_ecommerce' ) ) {
108 $reports_to_show[] = 'Goals_get_idGoal--ecommerceOrder';
109 $reports_to_show[] = 'Goals_getItemsName';
110 }
111
112 $reports_to_show = apply_filters( 'matomo_report_summary_report_ids', $reports_to_show );
113
114 $report_metadata = [];
115 $metadata = new Metadata();
116 foreach ( $reports_to_show as $report_unique_id ) {
117 $report = $metadata->find_report_by_unique_id( $report_unique_id );
118 if ( $report ) {
119 $report_page = $metadata->find_report_page_params_by_report_metadata( $report );
120 if ( $report_page ) {
121 $report['page'] = $report_page;
122 }
123 $report_metadata[] = $report;
124 }
125 }
126
127 return $report_metadata;
128 }
129
130 public function get_title() {
131 return __( 'Summary', 'matomo' );
132 }
133 }
134