PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 4.14.2
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v4.14.2
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 4 years ago views 3 years ago AccessSettings.php 4 years ago Admin.php 4 years ago AdminSettings.php 4 years ago AdminSettingsInterface.php 6 years ago AdvancedSettings.php 4 years ago Chart.php 4 years ago CookieConsent.php 4 years ago Dashboard.php 4 years ago ExclusionSettings.php 4 years ago GeolocationSettings.php 4 years ago GetStarted.php 4 years ago ImportWpStatistics.php 4 years ago Info.php 4 years ago InvalidIpException.php 4 years ago Marketplace.php 4 years ago Menu.php 3 years ago PrivacySettings.php 4 years ago SafeModeMenu.php 4 years ago Summary.php 4 years ago SystemReport.php 3 years ago TrackingSettings.php 4 years ago
Summary.php
166 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
71 $user_preference = new UserPreferences();
72 $default_date = $user_preference->getDefaultDate();
73 $report_period = $user_preference->getDefaultPeriod();
74 switch ( $report_period ) {
75 case 'day':
76 $report_date = $default_date;
77 break;
78 case 'year':
79 case 'month':
80 case 'week':
81 switch ( $default_date ) {
82 case 'yesterday':
83 $report_date = 'last' . $report_period;
84 break;
85 case 'today':
86 $report_date = 'this' . $report_period;
87 break;
88 }
89 break;
90 case 'range':
91 switch ( $default_date ) {
92 case 'previous30':
93 $report_date = 'lastmonth';
94 break;
95 case 'previous7':
96 $report_date = 'lastweek';
97 break;
98 case 'last30':
99 $report_date = 'thismonth';
100 break;
101 case 'last7':
102 $report_date = 'thisweek';
103 }
104 }
105 if ( isset( $_GET['report_date'] ) && isset( $report_dates[ $_GET['report_date'] ] ) ) {
106 $report_date = sanitize_text_field( wp_unslash( $_GET['report_date'] ) );
107 }
108
109 list( $report_period_selected, $report_date_selected ) = $report_dates_obj->detect_period_and_date( $report_date );
110
111 $is_tracking = $this->settings->is_tracking_enabled();
112
113 $matomo_dashboard = new Dashboard();
114
115 $wp_version = get_bloginfo( 'version' );
116 $matomo_is_version_pre55 = empty( $wp_version ) || version_compare( $wp_version, '5.5.0' ) === - 1;
117
118 include dirname( __FILE__ ) . '/views/summary.php';
119 }
120
121 private function get_reports_to_show() {
122 $reports_to_show = [
123 Renderer::CUSTOM_UNIQUE_ID_VISITS_OVER_TIME,
124 'VisitsSummary_get',
125 'UserCountry_getCountry',
126 'Actions_get',
127 'DevicesDetection_getType',
128 'Goals_get',
129 'Resolution_getResolution',
130 'DevicesDetection_getOsFamilies',
131 'DevicesDetection_getBrowsers',
132 'VisitTime_getVisitInformationPerServerTime',
133 'Actions_getPageTitles',
134 'Actions_getEntryPageTitles',
135 'Actions_getExitPageTitles',
136 'Actions_getDownloads',
137 'Actions_getOutlinks',
138 'Referrers_getAll',
139 'Referrers_getSocials',
140 'Referrers_getCampaigns',
141 ];
142
143 if ( $this->settings->get_global_option( 'track_ecommerce' ) ) {
144 $reports_to_show[] = 'Goals_get_idGoal--ecommerceOrder';
145 $reports_to_show[] = 'Goals_getItemsName';
146 }
147
148 $reports_to_show = apply_filters( 'matomo_report_summary_report_ids', $reports_to_show );
149
150 $report_metadata = [];
151 $metadata = new Metadata();
152 foreach ( $reports_to_show as $report_unique_id ) {
153 $report = $metadata->find_report_by_unique_id( $report_unique_id );
154 if ( $report ) {
155 $report_page = $metadata->find_report_page_params_by_report_metadata( $report );
156 if ( $report_page ) {
157 $report['page'] = $report_page;
158 }
159 $report_metadata[] = $report;
160 }
161 }
162
163 return $report_metadata;
164 }
165 }
166