PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 5.3.3
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v5.3.3
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 / Summary.php
matomo / classes / WpMatomo / Admin Last commit date
TrackingSettings 1 year ago views 1 year ago AccessSettings.php 4 years ago Admin.php 1 year ago AdminSettings.php 2 years ago AdminSettingsInterface.php 6 years ago AdvancedSettings.php 1 year ago Chart.php 4 years ago CookieConsent.php 4 years ago Dashboard.php 4 years ago ExclusionSettings.php 4 years ago GeolocationSettings.php 2 years ago GetStarted.php 4 years ago ImportWpStatistics.php 4 years ago Info.php 4 years ago InvalidIpException.php 4 years ago Marketplace.php 2 years ago MarketplaceSetupWizard.php 1 year ago Menu.php 1 year ago PluginMeasurableSettings.php 2 years ago PrivacySettings.php 1 year ago SafeModeMenu.php 4 years ago Summary.php 1 year ago SystemReport.php 1 year ago TrackingSettings.php 1 year ago WhatsNewNotifications.php 1 year ago
Summary.php
129 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 {
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 $unique_id = sanitize_text_field( wp_unslash( $_GET['report_uniqueid'] ) );
47 $date = sanitize_text_field( wp_unslash( $_GET['report_date'] ) );
48 $dashobard = new Dashboard();
49 if ( $dashobard->is_valid_widget( $unique_id, $date ) ) {
50 $dashobard->toggle_widget( $unique_id, $date );
51 return true;
52 }
53 }
54
55 return false;
56 }
57
58 public function show() {
59 do_action( 'matomo_load_chartjs' );
60
61 $matomo_pinned = $this->pin_if_submitted();
62
63 $settings = $this->settings;
64
65 $reports_to_show = $this->get_reports_to_show();
66 $filter_limit = apply_filters( 'matomo_report_summary_filter_limit', 10 );
67
68 $report_dates_obj = new Dates();
69 $report_dates = $report_dates_obj->get_supported_dates();
70 $report_date = $report_dates_obj->get_date_from_query();
71
72 list( $report_period_selected, $report_date_selected ) = $report_dates_obj->detect_period_and_date( $report_date );
73
74 $is_tracking = $this->settings->is_tracking_enabled();
75
76 $matomo_dashboard = new Dashboard();
77
78 $wp_version = get_bloginfo( 'version' );
79 $matomo_is_version_pre55 = empty( $wp_version ) || version_compare( $wp_version, '5.5.0' ) === - 1;
80
81 include dirname( __FILE__ ) . '/views/summary.php';
82 }
83
84 private function get_reports_to_show() {
85 $reports_to_show = [
86 Renderer::CUSTOM_UNIQUE_ID_VISITS_OVER_TIME,
87 'VisitsSummary_get',
88 'UserCountry_getCountry',
89 'Actions_get',
90 'DevicesDetection_getType',
91 'Goals_get',
92 'Resolution_getResolution',
93 'DevicesDetection_getOsFamilies',
94 'DevicesDetection_getBrowsers',
95 'VisitTime_getVisitInformationPerServerTime',
96 'Actions_getPageTitles',
97 'Actions_getEntryPageTitles',
98 'Actions_getExitPageTitles',
99 'Actions_getDownloads',
100 'Actions_getOutlinks',
101 'Referrers_getAll',
102 'Referrers_getSocials',
103 'Referrers_getCampaigns',
104 ];
105
106 if ( $this->settings->get_global_option( 'track_ecommerce' ) ) {
107 $reports_to_show[] = 'Goals_get_idGoal--ecommerceOrder';
108 $reports_to_show[] = 'Goals_getItemsName';
109 }
110
111 $reports_to_show = apply_filters( 'matomo_report_summary_report_ids', $reports_to_show );
112
113 $report_metadata = [];
114 $metadata = new Metadata();
115 foreach ( $reports_to_show as $report_unique_id ) {
116 $report = $metadata->find_report_by_unique_id( $report_unique_id );
117 if ( $report ) {
118 $report_page = $metadata->find_report_page_params_by_report_metadata( $report );
119 if ( $report_page ) {
120 $report['page'] = $report_page;
121 }
122 $report_metadata[] = $report;
123 }
124 }
125
126 return $report_metadata;
127 }
128 }
129